我需要将有限数量的单词与正则表达式匹配。例如,匹配句子中最多2个单词。
编辑:我正在使用CoffeeScript,我试过
^([a-zA-Z0-9]+[^a-zA-Z0-9]*){1,3}
似乎正在http://rubular.com/r/ncNgZBo6Lq上工作但不在我的脚本上。所以可能它不支持这种实现。
答案 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)/