【发布时间】:2019-07-16 00:22:51
【问题描述】:
我有以下字符串:
快速棕色狐狸 abc(1)(x)
使用以下正则表达式:
(?i)(\s{1})(abc\(1\)\([x|y]\))
输出是
abc(1)(x)
这是预期的,但是,我似乎不能:
- 使用 \W \w \d \D 等提取超过 1 个空格
- 结合量词添加更多空格。
我想要以下输出:
快速棕色狐狸 abc(1)(x)
从主要查找“abc(1)(x)”中,我希望查找的任一侧最多包含 5 个单词。我的假设是空格会区分一个词。
编辑 1:
对于未来的示例,两边的 5 个单词将是未知的。字符串可能是:
戴黑帽子的猫是 abc(1)(x) 敏捷的棕色狐狸跳过 懒狗。
在这种情况下,所需的输出将是:
带黑帽的是 abc(1)(x) 快速的棕色狐狸跳跃
编辑 2:
编辑了第一个示例中的预期输出并添加了“最多”5 个单词
【问题讨论】:
-
“我想要两边各 5 个单词” 你想要的输出中这五个单词在哪里?
-
这个特定示例的预期输出很清楚,但如果你再给出一句话,我不知道你想提取什么。请澄清您要做什么(关注what而不是how)
-
另外,您使用的是什么正则表达式风格(或编程语言)?
-
谢谢 - 我已在原始问题中进行了编辑以解决这些问题
-
@qbbq 那么,您的意思是希望每边最多五个字吗?我仍然不清楚为什么第一个示例的预期输出以“quick”而不是“the”开头。你能澄清一下吗?
标签: python regex regex-lookarounds regex-group