正则表达式匹配有限的单词数

时间:2015-04-08 19:24:42

标签: regex match

我需要将有限数量的单词与正则表达式匹配。例如,匹配句子中最多2个单词。

编辑:我正在使用CoffeeScript,我试过

^([a-zA-Z0-9]+[^a-zA-Z0-9]*){1,3} 

似乎正在http://rubular.com/r/ncNgZBo6Lq上工作但不在我的脚本上。所以可能它不支持这种实现。

1 个答案:

答案 0 :(得分:0)

这取决于您使用的是哪种正则表达式实现,以及" word"的确切含义。对您的请求的一种解释将提供此正则表达式作为解决方案:

/(\w+)\W+(\w+)/

对于许多正则表达式引擎,\w代表一个"字符",\W代表 a&#34的任何字符;字符"。与简单地寻找空格相反,这将仅仅通过标点符号将单词分隔为单独的单词,例如在连字符系列中。但是,要小心,因为"字符"意味着您的正则表达式引擎可能不是您想要的意思。例如,以上可能会计算收缩,例如" don&#t;"作为两个词(但也许还可以)。

更一般地说,如果你可以创建一个匹配每个人的正则表达式" word" (无论对你来说意味着什么)但不是其他任何东西,那么你可以形成一个正则表达式

/(one-word-regex)regex-for-what-can-separate-words(one-word-regex)/