RegEx问题:URL匹配无效,但不应该

时间:2011-03-01 20:01:39

标签: c# regex

我有以下字符串,它匹配以下RegEx字符串。我希望它不匹配。

测试字符串yahoo.c!om

RegEx模式[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?

使用an online tester,我可以验证“yahoo.c!om”匹配。我无法弄清楚如何修改RegEx模式使其不匹配。有没有人有任何想法?这个RegEx的东西让我想跳楼。

1 个答案:

答案 0 :(得分:4)

正则表达式中的.匹配任何字符(换行符除外)。所以.位于:

[\w-_]+(.[\w-_]+)+([\w-.,@?^=%&:/~+#]*[\w-\@?^=%&/~+#])?
        ^
        ^
        ^

!的{​​{1}}相匹配。转义yahoo.c!om以匹配文字.

.

这样,[\w-_]+(\.[\w-_]+)+([\w-.,@?^=%&:/~+#]*[\w-\@?^=%&/~+#])? ^^ ^^ ^^ 将无法完全匹配。

您可能希望使用“开始”和“输入结束”元字符(分别为yahoo.c!om^“”锚定您的正则表达式:

$