JS中的正则表达式 - 匹配除了最后的可选s之外的整个单词

时间:2015-12-15 19:24:42

标签: javascript regex string-matching

我正在尝试编写一个与一个单词匹配的正则表达式,但如果有一个单词,则不会与最后的s匹配(对于这个单词来说是“多重化”)。我似乎无法让它发挥作用。

输入的格式始终是数字,然后是单词,例如:     1 carrot

我希望匹配单词,但最后不匹配s。因此,carrot1 carrot匹配4 carrots

我试过一个前瞻,比如说 /\w+(?=s)/i 但是它不会匹配奇异的单词。我不知道怎么做一个可选的前瞻'如果这是有道理的。 非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

您可以使用这个基于前瞻性的正则表达式:

/\b\w+?(?=s?$)/m

RegEx Demo

(?=s?$)会在输入锚s>

结束前声明可选$的存在

答案 1 :(得分:1)

加号让你的比赛变得贪婪,你想要它lazy

\w+?(?=s)