允许多个单个单词的正则表达式

时间:2012-08-17 10:32:02

标签: php regex

当用户只能在文本框中输入1个单词时,我有一个工作正则表达式。 但是,如何调整它,允许2,3,4,5个单词?有时,我可能需要将代码更改为仅允许3个单词,例如。

这是我的正则表达式^([a-zA-Z_\-\.]+)$

1 个答案:

答案 0 :(得分:1)

匹配2,3,4,5单个单词

^(\b[a-zA-Z_\-\.]+?\b\s*){2,5}$

匹配2或4个单词

^(\b[a-zA-Z_\-\.]+?\b\s*){2}$|^(\b[a-zA-Z_\-\.]+?\b\s*){4}$
or
^((\b[a-zA-Z_\-\.]+?\b\s*){2}|(\b[a-zA-Z_\-\.]+?\b\s*){4})$

但它在测试abc.defabc_def =之后失败了(它找到了两个单词。\b对你的词汇[a-zA-Z_\-\.]+是错误的想法......


好的,就是这样。

2,3,4,5个单词

^([a-zA-Z_\-\.]+[^a-zA-Z_\-\.]+){1,4}[a-zA-Z_\-\.]+$

请注意,现在不允许使用最终的非字母符号。