regex - 需要找到所有 2 个大写单词的集合

标签 regex

你好,我需要找到所有 2 个大写单词的集合:到目前为止,我有:

([A-Z][a-z]+\s?){2}

但它并不总是有效。 例如字符串:

Expedition Runic Monster Markers

我希望得到:

  1. 远征 rune
  2. rune 怪物
  3. 怪物标记

我只得到1和3。但我也想得到2。我真的卡在这里了。感谢您的帮助。

最佳答案

重叠匹配需要是captured inside a lookahead .

\b(?=((?:[A-Z][a-z]+\s?\b){2}))

See this demo at Regex101 (进一步添加 \b word boundaries )

如果您使用的是 Python,则有 PyPI regex with overlapped=True .

关于regex - 需要找到所有 2 个大写单词的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73794721/

相关文章:

regex - 如何优化英语单词列表

c# - 希腊字符、正则表达式和 C#

java - Spring @RequestMapping "Not Contains"正则表达式

java - 如何在不多次扫描的情况下将文本匹配多种模式?

c# - 如何在 C# 中使用正则表达式解析 OData $filter?

javascript - 使用正则表达式从日期产生年份和月份

regex - 正则表达式匹配 <content> 标记内的每个换行符 (\n)

python - 解析具有 "magic"值的文本文件

javascript - 在方括号和非括号上拆分字符串

python - Python 中的正则表达式搜索和替换子字符串