【发布时间】:2013-03-11 19:25:51
【问题描述】:
在过去的几个小时里,我一直在努力让这个正则表达式正确,但不幸的是,我仍然无法得到它。也尝试搜索现有线程,但没有骰子。 :(
我想要一个正则表达式来匹配以下可能的字符串:
userprofile?id=123
profile
search?type=player&gender=male
someotherpage.htm
但不是
userprofile/
helloworld/123
基本上,我希望正则表达式匹配 字母数字、URL 运算符,例如 ?、= 和 &,但 不匹配正斜杠。 (即只要字符串包含正斜杠,正则表达式应该只返回 0 个匹配项。)
我已经尝试了以下正则表达式,但似乎都不起作用:
([0-9a-z?=.]+)
(^[^\/]*$[0-9a-z?=.]+)
([0-9a-z?=.][^\/]+)
([0-9a-z?=.][\/$]+)
任何帮助将不胜感激。非常感谢!
【问题讨论】:
-
所以,您只是不想匹配字符串中的正斜杠,而其他所有内容都应该匹配?是这样吗?或者就像,不应该匹配 -
"userprofile"之后的正斜杠? -
语言是什么?我建议您使用 URI/URL 类对 URL 进行预处理,以便在验证之前将 URL 拆分。
-
嘿@RohitJain,感谢您的回复!为了清楚起见,我只是编辑了我的问题。只要字符串包含正斜杠,正则表达式就应该返回 0 个匹配项。但它可能包含字母数字和 URL 运算符,例如 ?、= 和 &。 (:
-
@nhahtdh 此正则表达式用于 XML 文档(Struts 2 的 URL 重写)。
标签: regex url-rewriting