如何使用RegEx精确匹配或列出

时间:2016-02-05 16:49:16

标签: c# regex

Pattern: ^(?!test|abc).*$

我不想仅仅匹配test或abc,但这也匹配test123

我需要添加什么才能让它在结束时停止?

1 个答案:

答案 0 :(得分:3)

您还需要在前瞻中使用结束锚点:

^(?!(?:test|abc)$).*$

然后,它不会将testabc与整个字符串匹配,但会匹配test123

这是一个regex demo(使用PCRE引擎,因为它在.NET表达式中的工作方式与此表达式相同)。

要将$字符串结尾锚点应用于testabc,您需要对它们进行分组,我建议使用非捕获组(或者使用RegexOptions.ExplicitCapture)捕获一个。