我正在尝试用两个逗号分隔至少三个单词。到目前为止,我已经设法将两个单词与一个逗号匹配
/([A-z]|[0-9])(,{1})([A-z]|[0-9])/
但是我怎样才能在这个中添加一个逗号和一个单词。我试过重复同样的内容,但没有奏效。
我正在尝试用两个逗号分隔至少三个单词。到目前为止,我已经设法将两个单词与一个逗号匹配
/([A-z]|[0-9])(,{1})([A-z]|[0-9])/
但是我怎样才能在这个中添加一个逗号和一个单词。我试过重复同样的内容,但没有奏效。
/^(?:\w+,){2,}(?:\w+)$/
这将为您提供至少 3 个单词 ([a-zA-Z0-9_]+) 的逗号分隔列表。
/^\s*(?:\w+\s*,\s*){2,}(?:\w+\s*)$/
这是第一个版本的用户友好型版本,允许单词之间有空格。
如果它是PERL 派生的 regex,就像我遇到的大多数实现一样,/[^,]+(?:,[^,]+){2,}/
它可以很好地针对其中至少有两个逗号的任何东西进行测试,前提是逗号之间有一些东西。该(?:)
构造允许在不捕获的情况下进行分组。该{2,}
构造指定了前一组的 2 个或更多匹配项。在javascript中,您可以对其进行测试:
/[^,]+(?:,[^,]+){2,}/.test("hello,world,whats,up,next"); // returns true
/[^,]+(?:,[^,]+){2,}/.test("hello,world"); // returns false
从性能角度提出的一些一般性建议:
试试这个:
([a-zA-Z0-9]+)(,[a-zA-Z0-9]+){2,}
这将解决你的问题,试试这个
([a-zA-Z0-9],[a-zA-Z0-9],([a-zA-Z0-9]))