我遇到正则表达式问题。我想匹配将表示URL中的页面的字符串。
我想匹配这些字符串:
避免像这样的字符串:
所以基本上我只需要一个以[a-z]开头的字符串,以[a-z]结尾,并且在中间可以有减号。但我需要多个减号。
我试过了:
^([a-z0-9]+)(\-[a-z0-9]+)*([a-z0-9]+)?$
现在这个工作,我用Rubular打开一个标签,粘贴我正在尝试的东西并提出想法并解决这个问题
但无论如何,还有其他更优雅的方法吗?
答案 0 :(得分:0)
您可以使用0-9
替换角色类中的\d
- 它代表“数字”,但意味着同样的事情。你也可以删除最后的([a-z0-9]+)?
,这是完全没必要的,因为紧接在它之前的块以相同的字符类结束。如果你也可以使用大写字母(你可能没有,你没有指定),你可以用[\w\d]
替换字符类,这意味着任何字母('单词字符')或数字。