【发布时间】:2017-02-01 19:33:46
【问题描述】:
字符串S 如下所示:
S = "HOLY CROWS \n This looks scary. \n Horror score rises. \n MAYBE I should ask \n STACKOVERFLOW \n They would know."
期望的输出:
“我应该问 STACKOVERFLOW 他们会知道的。”
基本上:
查找包含单个大写单词且包含在以下条件中的每个匹配项:
- 在 UPPERCASEWORD 之后获取字符串,直到换行。
- 获取 UPPERCASEWORD 之前的字符串,直到遇到 ANOTHERUPPERCASEWORD,当且仅当在其间未发现换行符。
这是我目前所拥有的:
\w\n\w[A-Z]+\n.*?\w
但这并不能征服单词前后的完整行。 它也不满足第二个要求。
电流输出:
"k 堆栈溢出 T"
【问题讨论】:
-
试试
[A-Z]{2}.*\r?\n.*[A-Z]{2}.*\r?\n.*。我假设您想匹配至少 2 个字母长的 ALLCAPS。否则,请尝试\b[A-Z]+\b.*\r?\n.*\b[A-Z]+\b.*\r?\n.*。
标签: python regex python-3.x regex-lookarounds