正则表达式 - 除结尾

时间:2018-05-07 12:55:22

标签: .net regex

我需要匹配任何以"&"结尾的行。但不包含","或"&"介于两者之间。

a b c &

a, b, c, &

a & b, c &

a & b

通过使用:

,我获得了部分成功
^(?!.*,).*&.*$

我得到了两个:

a b c &
a & b

所以我用

尝试了
^(?!.*(,|&)).*&.*$

我无法得到任何比赛。如何修改我的正则表达式,这样我才能获得a b c &?我正在使用.NET

1 个答案:

答案 0 :(得分:3)

似乎你应该通过使用否定的字符类来获得你需要的东西,例如

\s*

使用多行标记。

如果您不想按照revo的建议允许尾随空格,则可以\r?替换[^,&\n]

如果您正在使用多行文本(而不是测试行的行)以避免重叠匹配,您可能还希望将换行符添加到否定字符类({{1}})。