我有以下字符串,它匹配以下RegEx字符串。我希望它不匹配。
测试字符串:yahoo.c!om
RegEx模式:[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
使用an online tester,我可以验证“yahoo.c!om”匹配。我无法弄清楚如何修改RegEx模式使其不匹配。有没有人有任何想法?这个RegEx的东西让我想跳楼。
答案 0 :(得分:4)
正则表达式中的.
匹配任何字符(换行符除外)。所以.
位于:
[\w-_]+(.[\w-_]+)+([\w-.,@?^=%&:/~+#]*[\w-\@?^=%&/~+#])?
^
^
^
与!
的{{1}}相匹配。转义yahoo.c!om
以匹配文字.
:
.
这样,[\w-_]+(\.[\w-_]+)+([\w-.,@?^=%&:/~+#]*[\w-\@?^=%&/~+#])?
^^
^^
^^
将无法完全匹配。
您可能希望使用“开始”和“输入结束”元字符(分别为yahoo.c!om
和^
“”锚定您的正则表达式:
$