如何匹配仅内部含连字符、边界无连字符的完整单词?
解决方案
要匹配符合要求的单词,可使用以下正则表达式:
^[a-zA-Z]+(?:-[a-zA-Z]+)*$
规则说明:
^匹配字符串开头,确保目标内容不会以连字符起始[a-zA-Z]+匹配一个或多个字母,作为单词的起始部分(?:-[a-zA-Z]+)*匹配零个或多个「连字符+一个或多个字母」的组合,允许单词内部插入任意数量的连字符,但每个连字符后必须紧跟字母$匹配字符串结尾,确保目标内容不会以连字符结束
匹配验证:
- 可成功匹配的内容:
w、wo、w-o、wo-r-d - 无法匹配的内容:
-、-w、w-、-word、wo-rd-
如果需要支持数字或下划线(即匹配广义的单词字符),可以将正则中的[a-zA-Z]替换为\w,得到:
^\w+(?:-\w+)*$
内容的提问来源于stack exchange,提问作者kruk
相关产品推荐
相关产品推荐

