我试图让两个commas.I分离的至少三个单词分隔的三个词迄今设法匹配两个词有一个逗号,正则表达式匹配由两个逗号
/([A-z]|[0-9])(,{1})([A-z]|[0-9])/
,但我怎么能给这个添加一个逗号和一个单词。我试着重复同样的操作,但没有成功。
我试图让两个commas.I分离的至少三个单词分隔的三个词迄今设法匹配两个词有一个逗号,正则表达式匹配由两个逗号
/([A-z]|[0-9])(,{1})([A-z]|[0-9])/
,但我怎么能给这个添加一个逗号和一个单词。我试着重复同样的操作,但没有成功。
/^(?:\w+,){2,}(?:\w+)$/
这将让你一个逗号分隔的至少3个字表([A-ZA-Z0-9 _] +)。
/^\s*(?:\w+\s*,\s*){2,}(?:\w+\s*)$/
这是第一个稍微更人性化的版本,允许单词之间的空格。
感谢您的帮助。但是正则表达式不允许词之间的空格like提到 – 2012-04-04 09:15:08
[我自己尝试过。](http://www.regular-expressions.info/javascriptexample.html)你尝试过什么样的例子? – Neil 2012-04-04 10:17:03
感谢this.I很满意你给我什么,但似乎第一个和第三个单词之间的空间,但第二个doesnot.Foe的例子,(非常好,不坏,非常丑)不会通过验证但是(非常好,很坏,很丑)通过验证 – 2012-06-12 06:28:24
如果是PERL derived regex,我遇到的大多数实现都是/[^,]+(?:,[^,]+){2,}/
,它对任何至少有两个逗号的东西进行测试,前提是逗号之间有一些逗号。 (?:)
构造允许分组而不捕获。 {2,}
结构指定了前一组的两个或更多匹配。在JavaScript中,你可以测试它:从性能的角度来看
/[^,]+(?:,[^,]+){2,}/.test("hello,world,whats,up,next"); // returns true
/[^,]+(?:,[^,]+){2,}/.test("hello,world"); // returns false
如果它不是派生的PERL,你可以在'(?:)'结构中没有'?:'的地方去;但是然后你会得到抓拍,我不知道你是否想要。 – Yuval 2012-04-04 08:35:02
一些一般性建议:
请[编辑您的文章](http://meta.stackoverflow.com/editing-help)它几乎不可读。 – stema 2012-04-04 08:43:31
试试这个:
([a-zA-Z0-9]+)(,[a-zA-Z0-9]+){2,}
这将解决你的问题, 试试这个
([A-ZA-Z0-9],[A-ZA-Z0-9]([A-ZA-Z0-9]))
这只会处理单个字符,例如a,b,c或1,2,3。 – 2013-09-30 13:24:02
什么语言在这个正则表达式中? – 2012-04-04 08:25:23
你可能想要'[a-zA-Z]'而不是'[A-z]' – Yuval 2012-04-04 08:26:11
看起来像javascript,但我可能是错的。 – Neil 2012-04-04 08:26:58