C# 正则表达式问题:URL匹配无效,但不应
我有下面的字符串,它与下面的正则表达式字符串匹配。我希望它不匹配 测试字符串:C# 正则表达式问题:URL匹配无效,但不应,c#,regex,C#,Regex,我有下面的字符串,它与下面的正则表达式字符串匹配。我希望它不匹配 测试字符串:yahoo.c!om 正则表达式模式:[\w\-\\+(\.[\w\-\\+)+([\w\-\,@?^=%&;:/~\+\\\\\\\\\\]*[\w\-\\\\\\\\\\\\\\\\\\\\\+])? 使用,我可以验证“yahoo.c!om”是否匹配。我不知道如何修改RegEx模式使其不匹配。有人有什么想法吗?这个正则表达式让我想跳楼。正则表达式中的匹配任何字符(换行符除外)。因此,中的: [\w-_]+(.
yahoo.c!om
正则表达式模式:[\w\-\\+(\.[\w\-\\+)+([\w\-\,@?^=%&;:/~\+\\\\\\\\\\]*[\w\-\\\\\\\\\\\\\\\\\\\\\+])?
使用,我可以验证“yahoo.c!om”是否匹配。我不知道如何修改RegEx模式使其不匹配。有人有什么想法吗?这个正则表达式让我想跳楼。正则表达式中的
匹配任何字符(换行符除外)。因此,中的
:
[\w-_]+(.[\w-_]+)+([\w-.,@?^=%&:/~+#]*[\w-\@?^=%&/~+#])?
^
^
^
匹配
fromyahoo.c!om
。将
转义为匹配文本
:
[\w-_]+(\.[\w-_]+)+([\w-.,@?^=%&:/~+#]*[\w-\@?^=%&/~+#])?
^^
^^
^^
这样,yahoo.c!om
不会完全匹配
您可能希望使用“输入的开始”和“输入的结束”元字符“锚定”正则表达式(^
和$
):
正则表达式中的
匹配任何字符(换行符除外)。因此,中的
:
[\w-_]+(.[\w-_]+)+([\w-.,@?^=%&:/~+#]*[\w-\@?^=%&/~+#])?
^
^
^
匹配
fromyahoo.c!om
。将
转义为匹配文本
:
[\w-_]+(\.[\w-_]+)+([\w-.,@?^=%&:/~+#]*[\w-\@?^=%&/~+#])?
^^
^^
^^
这样,yahoo.c!om
不会完全匹配
您可能希望使用“输入的开始”和“输入的结束”元字符“锚定”正则表达式(^
和$
):
你能告诉use你想要正则表达式匹配什么吗?如果我们不知道这一点,则正则表达式可能与您想要的不匹配。子句:
([\w-\u]+)+
匹配整个url,引擎将从此点开始继续报告匹配。如果你能提供更多关于你想要完成的事情的信息,这将是非常有用的。也许这个子句(@matt.seil)真的应该是(\.[\w-\u]+)+
?或者甚至是(\.[\w-]+)+
,因为下划线已经是\w
的一部分。除了@Bart Kiers所说的,看起来您的正则表达式中有一些未替换的特殊字符。我在编辑窗格中查看了它,但我无法判断它们是否是由堆栈溢出自动放入的。还值得注意的是,\w
类包括\uu
?如果我们不知道这一点,则正则表达式可能与您想要的不匹配。子句:([\w-\u]+)+
匹配整个url,引擎将从此点开始继续报告匹配。如果你能提供更多关于你想要完成的事情的信息,这将是非常有用的。也许这个子句(@matt.seil)真的应该是(\.[\w-\u]+)+
?或者甚至是(\.[\w-]+)+
,因为下划线已经是\w
的一部分。除了@Bart Kiers所说的,看起来您的正则表达式中有一些未替换的特殊字符。我在编辑窗格中查看了它,但我无法判断它们是否是由堆栈溢出自动放入的。还值得注意的是,\w
类包括\u
。