所以我想尝试匹配像
这样的字符串Blah, blah, whatever
etc. , ^
我想先抓住所有内容,^
喜欢
Blah, blah, whatever
etc.
我试过
(.*?), \^'
但是这对带有换行符的字符串失败了。
如何在捕获组中获得换行符匹配?
答案 0 :(得分:2)
你可以使用这种基于正则表达式的负前瞻:
^(?:(?! *, *\^)[\s\S])*
<强>解体强>
(?! *, *\^) # negative lookahead that fails the match if next pattern is 0 or more spaces
# followed by a comma and optional spaces and literal ^
[\s\S] # matches any character including newlines
答案 1 :(得分:0)
通常您可以使用单线模式。通过在正则表达式前添加(?s)
前缀来启用它。这使得点匹配所有字符包括换行符:
PS> [regex]::Match($s, '(.*?), \^').Value
etc. , ^
PS> [regex]::Match($s, '(?s)(.*?), \^').Value
Blah, blah, whatever
etc. , ^
在某些语言中,您可能需要(或可以)为正则表达式提供其他选项作为附加方法参数,或者它们是正则表达式文字的后缀(如果有的话)。