这个很简单。这个真正简单的RegEx表达式有什么问题?
我试图创建一个正则表达式,这将导致成功匹配时对以下文本
/default.aspx?
,所以我尝试以下...
^/default.aspx$
,它无法匹配它。
有人可以帮忙吗?
(我猜测我搞砸了\
和输入表达式中的?
)。
这个很简单。这个真正简单的RegEx表达式有什么问题?
我试图创建一个正则表达式,这将导致成功匹配时对以下文本
/default.aspx?
,所以我尝试以下...
^/default.aspx$
,它无法匹配它。
有人可以帮忙吗?
(我猜测我搞砸了\
和输入表达式中的?
)。
问题出在.
(点),这是一个通配符, 您必须像\.
那样转义它。
此外,由于URL末尾有?
,因此$
(输入结束)位于正则表达式中,因此它不匹配。
正确的正则表达式应该是^/default\.aspx(\?.*)?$
在^/Default.aspx的$手段结束的$“字符串的结尾匹配”,但该字符串你与搜索结束“?”。
您需要添加\?在$之前或它不匹配。 '?'也是一个保留字符(意思是前一个事物的零个或一个),它也应该用一个反斜杠进行转义。 – James 2010-04-14 02:28:36
ooho。我并不太离谱。所有那些括号内的东西总是让我难住,也。你能解释一下(?。*)的作用吗?我猜((。*))?说括号里的东西..好吧,它是可选的? – 2010-04-14 03:07:37
@Pure:实际上,'(?。*)'是一个语法错误。它应该是'(\?。*)':一个问号跟零个或多个任何东西。正如你所说,最后的问号使得整个组是可选的。 – 2010-04-14 03:14:47