将所有字符和换行符匹配为“,^”字符

时间:2015-06-11 15:59:11

标签: regex

所以我想尝试匹配像

这样的字符串
Blah, blah, whatever 
etc. , ^

我想先抓住所有内容,^喜欢

Blah, blah, whatever 
etc. 

我试过

(.*?), \^'

但是这对带有换行符的字符串失败了。

如何在捕获组中获得换行符匹配?

2 个答案:

答案 0 :(得分:2)

你可以使用这种基于正则表达式的负前瞻:

^(?:(?! *, *\^)[\s\S])*

RegEx Demo

<强>解体

(?! *, *\^) # 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. , ^

在某些语言中,您可能需要(或可以)为正则表达式提供其他选项作为附加方法参数,或者它们是正则表达式文字的后缀(如果有的话)。