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