正则表达式:非捕获组仍然显示

标签 regex regex-lookarounds

我有一个句子是

The cow is fat. The cows are fat. The cowss are fat

我想仅使用正则表达式(要求)从中提取牛,牛,牛,而不是java。也就是说,忽略所有尾随的“s”(如果存在)。

我已经尝试过

\cow[(?:s)]*\

但它给了我牛,牛,牛。我做错了什么?

最佳答案

非捕获组将匹配字符串,但不将匹配结果保留到组中。在您的情况下,如果您想匹配所有cow,并忽略所有尾随。您应该将cow 放入一个组中。

就像(牛)*

关于正则表达式:非捕获组仍然显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34459801/

相关文章:

php - 根据 php 中的分隔符拆分文件 - 哪个最好用?

javascript - 选择除评论以外的所有内容

regex - 加载错误 : PCRE compilation error: lookbehind assertion is not fixed length

Ruby:如何从文件中读取正则表达式,然后使用该正则表达式解析字符串?

带有 `\R` 的 Java-8 正则表达式否定回顾

c - 如何测试字符串是否遵循 C 中的给定模式?

ios - 用于将特定 URL 与小写字母和破折号匹配的正则表达式

python - 如何使用否定先行删除两个字符之间的搜索

regex - 查找后面没有结束跨度标签的域

java - Java中具有可变长度零宽度lookbehind的正则表达式