JS 中的正则表达式 - 匹配整个单词,除了末尾的可选 s
Regular Expression in JS - Match whole word except for optional s at the end
我正在尝试编写一个正则表达式,它将匹配一个单词,但不会匹配末尾的 s(如果有的话)(到 'de-pluralize' 这个单词)。我似乎无法让它正常工作。
输入的格式始终是数字,然后是单词,例如:
1 carrot
我想匹配单词但不匹配末尾的 s。所以它会匹配 carrot
1 carrot
和 4 carrots
.
我试过向前看,比如
/\w+(?=s)/i
但它不会匹配单数词。如果有意义的话,我不知道如何制作 'optional lookahead' 。
非常感谢任何帮助!
您可以使用这个基于前瞻的正则表达式:
/\b\w+?(?=s?$)/m
(?=s?$)
将在输入锚 $
>
结束之前声明可选 s
的存在
加号让你的比赛变得贪心,你想要它lazy。
\w+?(?=s)
我正在尝试编写一个正则表达式,它将匹配一个单词,但不会匹配末尾的 s(如果有的话)(到 'de-pluralize' 这个单词)。我似乎无法让它正常工作。
输入的格式始终是数字,然后是单词,例如:
1 carrot
我想匹配单词但不匹配末尾的 s。所以它会匹配 carrot
1 carrot
和 4 carrots
.
我试过向前看,比如
/\w+(?=s)/i
但它不会匹配单数词。如果有意义的话,我不知道如何制作 'optional lookahead' 。
非常感谢任何帮助!
您可以使用这个基于前瞻的正则表达式:
/\b\w+?(?=s?$)/m
(?=s?$)
将在输入锚 $
>
s
的存在
加号让你的比赛变得贪心,你想要它lazy。
\w+?(?=s)