我无法将头部缠绕在一个正则表达式上。
到目前为止,我的模式看起来像这样(Python Verbose flavor regex)
(?P<text>
[a-zA-Z0-9]+ # can start with "core char"
[a-zA-Z0-9\ \-]* # can have a "core char" or space|dash within it
[a-zA-Z0-9]+ # must end with a "core character"
)
我想在中间部分改变这个,我不匹配有重复的空格或破折号。在文本中有多个空格/破折号是可以接受的。
好:
hello world
hello-world
h-ll-w-rld
坏:
-hello-world
hello--world
h-ll--w-rld
hello world
答案 0 :(得分:6)
试试这个:
(?P<text>
[a-zA-Z0-9]+
([ -][a-zA-Z0-9]+)*
)
答案 1 :(得分:2)
您可以使用以下内容:
^([a-zA-Z0-9]+[\ \-]?)*[a-zA-Z0-9]+$
http://rubular.com/r/VGfGTrqayR
如果您总是希望有2个或更多单词,那么请使用以下内容
^([a-zA-Z0-9]+[\ \-])+[a-zA-Z0-9]+$