标签: javascript regex string-matching
我正在尝试编写一个与一个单词匹配的正则表达式,但如果有一个单词,则不会与最后的s匹配(对于这个单词来说是“多重化”)。我似乎无法让它发挥作用。
输入的格式始终是数字,然后是单词,例如: 1 carrot
1 carrot
我希望匹配单词,但最后不匹配s。因此,carrot和1 carrot匹配4 carrots。
carrot
4 carrots
我试过一个前瞻,比如说 /\w+(?=s)/i 但是它不会匹配奇异的单词。我不知道怎么做一个可选的前瞻'如果这是有道理的。 非常感谢任何帮助!
/\w+(?=s)/i
答案 0 :(得分:2)
您可以使用这个基于前瞻性的正则表达式:
/\b\w+?(?=s?$)/m
RegEx Demo
(?=s?$)会在输入锚s>
(?=s?$)
s
$
答案 1 :(得分:1)
加号让你的比赛变得贪婪,你想要它lazy。
\w+?(?=s)