如何创建仅匹配字母和数字的正则表达式,以及每个单词之间的 one 空格?
Good Examples:
Amazing Hello World I am 500 years old
Bad Examples:
Hello world I am 500 years old. I am Chuck Norris
大多数正则表达式实现都支持命名的字符类:
^[[:alnum:]]+( [[:alnum:]]+)*$
你可能很聪明,虽然不太清楚,并简化为:
^([[:alnum:]]+ ?)*$
仅供参考,第二个允许字符串末尾的虚假空格字符 . 如果你不想坚持使用第一个正则表达式 .
另外正如其他海报所说,如果 [[:alnum:]] 不适合你,那么你可以改用 [A-Za-z0-9] .
[[:alnum:]]
[A-Za-z0-9]
([a-zA-Z0-9]+ ?)+?
^([a-zA-Z0-9]+\s?)*$
其作品
^[a-zA-Z]+([\s][a-zA-Z]+)*$
(?:[a-zA-Z0-9]+[ ])+[a-zA-Z0-9]+
如果我理解正确,上面的正则表达式应该可行 . 见下面的截图:
screenshot http://img136.imageshack.us/img136/6871/screenshotkiki056.png
这会匹配一个单词
'[a-zA-Z0-9]+\ ?'
6 回答
大多数正则表达式实现都支持命名的字符类:
你可能很聪明,虽然不太清楚,并简化为:
仅供参考,第二个允许字符串末尾的虚假空格字符 . 如果你不想坚持使用第一个正则表达式 .
另外正如其他海报所说,如果
[[:alnum:]]
不适合你,那么你可以改用[A-Za-z0-9]
.其作品
如果我理解正确,上面的正则表达式应该可行 . 见下面的截图:
screenshot http://img136.imageshack.us/img136/6871/screenshotkiki056.png
这会匹配一个单词