我想匹配这样的字符串:
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。
我的正则表达能力目前并不那么好,我想知道是否有更好的方法来匹配这些字符串。另外,我上面的正则表达式是不是很好?
答案 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).