javascript - JS 中的正则表达式 - 匹配整个单词,除了末尾的可选 s

标签 javascript regex string-matching

我正在尝试编写一个正则表达式,它会匹配一个单词,但不会匹配末尾的 s(如果有的话)(“去复数化”这个词)。我似乎无法让它正常工作。

输入的格式永远是一个数字,然后是一个单词,比如: 1 根胡萝卜

我想匹配单词但不匹配末尾的 s。所以它将匹配 carrot 1 胡萝卜4 胡萝卜

我试过向前看,比如 /\w+(?=s)/i 但它不会匹配单数词。如果有意义的话,我不知道如何进行“可选的前瞻”。 非常感谢任何帮助!

最佳答案

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

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

RegEx Demo

(?=s?$) 将在输入 anchor $> 结束之前声明可选 s 的存在>

关于javascript - JS 中的正则表达式 - 匹配整个单词,除了末尾的可选 s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34297677/

相关文章:

javascript - 如何在 Angular JS 中使用 img 标签?

regex - Mongodb - 子文档键的正则表达式匹配

javascript - 简化 JavaScript 正则表达式

java - 正则表达式:在段落中出现任何字符串列表后删除任何单词中的后缀字符串

Python:是否有一种更具可扩展性的方法来查找字符串中的所有字符串?

javascript - Array.push 在 forEach 循环中的 for 循环中不起作用。Javascript

javascript - 自动刷新天气预报脚本

javascript - 未捕获的类型错误 : Cannot read property 'classList' of undefined

javascript - 所有数字但不包括零的正则表达式

lua - 如何获取 lua 字符串匹配来解析环境变量字符串?