2

次の文字列があります

№ покупки(OrderId) : 12345
Доп.Информация 1 : Имя
Доп.Информация 2 : Уставная деятельность

で始まる行をキャッチしたいДоп.Информация 1

これは機能します:

Доп\.Информация 1\W*:\W*(\w*)

これはしません:

^Доп\.Информация 1\W*:\W*(\w*)$

これだけが機能します:

^№

どうしたの?私の知る限り、^記号は文字列自体の先頭だけでなく、記号の後の検索にも使用され\nます。

4

2 に答える 2

2

複数行モードを使用することをお勧めします。/mそのため^$テキストの各行に適用されます。

/^.* 1 : .*$/m

他の選択肢は次のとおりです。

/(?:^|(?<=\n)).* 1 : .*/

(?:^|(?<=\n))行頭に一致します。

于 2012-11-10T16:40:21.960 に答える
1

複数行モードを使用する場合のみ。次のようにアクティブ化できます。

'/^Доп\.Информация 1\W*:\W*(\w*)$/m'

区切り文字の後に置くだけです(使用している文字は何でも)。ドキュメントのこの部分では、これらの修飾子の使用方法を示します。

あるいは、正規表現内でこれらのオプションを設定することも、その個々の部分に対してのみ設定することもできます (ただし、これはおそらくあなたのケースでは必要ありません)。それがどのように機能するかは次のとおりです。

'/(?m:^Доп\.Информация 1\W*:\W*(\w*)$)/'

または、次のように特定のポイントから修飾子を設定できます。

'/(?m)^Доп\.Информация 1\W*:\W*(\w*)$/'

このスタイルについては、ドキュメントのこのビットをチェックしてください。

于 2012-11-10T16:32:15.143 に答える