正则表达式 - 如何匹配url页面

时间:2012-01-01 17:01:15

标签: regex

我想匹配这样的字符串:

page
page01-page02
page01-page02-page03
page-page/page/page-03-001
p-a-g-e
p/a/g/e
123-456-789/123/123-456-789
p

这些是我想要匹配的字符串。它们除以/,并且在每个/之间可以[a-z0-9]+,再次除以-。很难解释;我的例子应该让事情更清楚。

我想出了这个正则表达式:

/(([a-z0-9]+)(\-[a-z0-9]+){0,})(\/([a-z0-9]+)(\-[a-z0-9]+){0,}){0,}/

您可以对其进行测试here

我的正则表达能力目前并不那么好,我想知道是否有更好的方法来匹配这些字符串。另外,我上面的正则表达式是不是很好?

1 个答案:

答案 0 :(得分:1)

尝试使用下一个正则表达式:

^[a-z\d]+((\/|-)[a-z\d]+)*$

说明:

^                      # Begin of match (zero-width)
[a-z\d]+               # One or more combination of letters and digits (not included uppercase).
(
  (\/|-)               # A '/' or '-'
  [a-z\d]+             # One or more combination of letters and digits.
)*                     # All last combination zero or more times.
$                      # End of match (zero-width).