2

我有以下字符串

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

我想抓住以Доп.Информация 1.

这个有效:

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

这个没有:

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

只有这个有效:

^№

怎么了?据我所知,该^符号不仅用于在字符串本身的开头进行搜索,还用于在\n符号之后进行搜索。

4

2 回答 2

2

我建议使用 multiline mode /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 回答