正则表达式小写字母和连字符

12

有谁能帮我写一个正则表达式,只匹配所有小写字母加上连字符。

例如:this-page-name


@Tomalak 以后会做到的,对此很抱歉。[a-z-]+ 正是我正在寻找的。 - Scott Bartell
2个回答

32

迈克·克拉克的模式[a-z\-]+将匹配-start-dash-double-dash---and-end-dash-

也许^[a-z]+(-[a-z]+)*$更加精确一些。


2
根据OP提供的示例,我认为这个答案更好。 - andrewdleach
1
如果正则表达式引擎支持非捕获组(基本上所有非 POSIX 正则表达式),最好使用 ^[a-z]+(?:-[a-z]+)*$示例)。在 C++ 的 regex_match、Java 的 .matches() 和 Python 的 re.fullmatch 中,锚点通常是不必要的。 - Wiktor Stribiżew

26

这将捕获一个或多个小写字母a-z或连字符的字符。

[a-z\-]+

关键在于使用反斜杠来转义连字符。

为了完整起见,你可以在两端添加适当的边界符号,如 \b 表示完整单词匹配,或者使用 ^ 和 $ 来匹配整行。


所有字母大小写和连字符的正则表达式怎么样? - Devops-Paddy
@Devops-Paddy的回复有些晚了。为了捕获两种情况,您可以使用[a-zA-Z-]+。 - Mike Clark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接