Javascript 多行上的正则表达式捕获模式
我很难捕捉到多行的重复模式。 我相信这是一项简单的任务,但我似乎无法让它发挥作用 :Javascript 多行上的正则表达式捕获模式,javascript,regex,Javascript,Regex,我很难捕捉到多行的重复模式。 我相信这是一项简单的任务,但我似乎无法让它发挥作用 :用户(.*\s*) 为什么仅仅*(任何字符,包括新行?多次)不足以捕捉多行?如何调整正则表达式使其按预期工作 谢谢 我建议使用一个贪婪的标记,依靠[^]或[\s\s]来匹配任何字符,因为在JS regex中,由于没有DOTALL/s修饰符,无法重新定义点行为 使用 见 详细信息 ^-行的开头(由于使用了m修饰符,^匹配字符串和行的开头) 用户的-文字字符序列 (?:(?!^Users of)[\s\s])*-匹
用户(.*\s*)
为什么仅仅*
(任何字符,包括新行?多次)不足以捕捉多行?如何调整正则表达式使其按预期工作
谢谢 我建议使用一个贪婪的标记,依靠
[^]
或[\s\s]
来匹配任何字符,因为在JS regex中,由于没有DOTALL/s
修饰符,无法重新定义点行为
使用
见
详细信息
-行的开头(由于使用了^
修饰符,m
匹配字符串和行的开头)^
-文字字符序列用户的
-匹配任何字符(请参见(?:(?!^Users of)[\s\s])*
=[\s\s]
)的零次或多次(请参见[^]
)的贪婪令牌,该令牌不会在行首启动*
子字符串的
用户
/^Users of .*(?:\r?\n(?!Users of ).*)*/gim
看
在这里,回火贪婪令牌展开为
-在*
用户之后的剩余行
-零次或多次出现:(?:\r?\n(?!用户)。*)*
-换行符(可替换为\r?\n
以匹配任何常用样式换行符)(?:\r\n?|\n)
-子字符串的(?!的用户)
用户后面不跟在后面
-行的其余部分*
[^]
或[\s\s]
来匹配任何字符,因为在JS regex中,由于缺少DOTALL/s
修饰符,无法重新定义点行为
使用
见
详细信息
-行的开头(由于使用了^
修饰符,m
匹配字符串和行的开头)^
-文字字符序列用户的
-匹配任何字符(请参见(?:(?!^Users of)[\s\s])*
=[\s\s]
)的零次或多次(请参见[^]
)的贪婪令牌,该令牌不会在行首启动*
子字符串的
用户
/^Users of .*(?:\r?\n(?!Users of ).*)*/gim
看
在这里,回火贪婪令牌展开为
-在*
用户之后的剩余行
-零次或多次出现:(?:\r?\n(?!用户)。*)*
-换行符(可替换为\r?\n
以匹配任何常用样式换行符)(?:\r\n?|\n)
-子字符串的(?!的用户)
用户后面不跟在后面
-行的其余部分*
*
(任何字符,包括新行?多次)不足以捕获多行?”因为
与JavaScript方言regex中的新行不匹配。要做到这一点,一个选项是使用替代选项:。\n
。但你的问题可能不止这些。Wiktor在这里,他可能会把它盖上这里有什么规定?如何定义模式?我想捕获“的用户”并转发到下一次发生。好吧,比如“为什么仅仅*
(任何字符,包括新行?多次)不足以捕获多行?”因为
与JavaScript方言regex中的新行不匹配。要做到这一点,一个选项是使用替代选项:。\n
。但你的问题可能不止这些。维克托在这里,他可能会把它盖好的。太好了!非常感谢!比我想象的要复杂一点=请注意,展开正则表达式必须更有效,因为它只会在换行时“绊倒”。回火贪婪标记将在每个角色上“绊倒”。完美!非常感谢!比我想象的要复杂一点=请注意,展开正则表达式必须更有效,因为它只会在换行时“绊倒”。回火贪婪标记将在每个角色处“绊倒”。
/^Users of .*(?:\r?\n(?!Users of ).*)*/gim