正则表达式,用于允许多个单个单词


Regex for allowing multiple, single words

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

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

用于匹配 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_'-'.]+$

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