gpt4 book ai didi

Python 正则表达式 - 忽略括号作为索引?

转载 作者:太空狗 更新时间:2023-10-29 22:13:49 25 4
gpt4 key购买 nike

我目前编写了一个 nooby 正则表达式模式,其中涉及过度使用“(”和“)”字符,但我将它们用于“或”运算符,例如 (A|B|C) 表示 A或 B 或 C。

我需要在字符串中找到模式的每个匹配项。
尝试使用 re.findall(pattern, text) 方法并不好,因为它将括号字符解释为索引符号(或任何正确的行话),因此生成的列表的每个元素不是显示匹配文本部分的字符串,而是一个元组(其中包含非常丑陋的模式匹配片段)。

是否有一个参数可以传递给 findall 以忽略括号作为索引?
或者我将不得不使用一个非常丑陋的 re.searchre.sub

组合

(这是我能想到的唯一解决方案;找到 re.search 的索引,将匹配的文本部分添加到列表中,然后{通过使用丑陋的索引技巧}将其从原始字符串中删除,继续这样做直到没有更多的比赛了。显然,这是可怕的和不可取的)。

谢谢!

最佳答案

是的,将 ?: 添加到组中以使其不捕获。

import re
print re.findall('(.(foo))', "Xfoo") # [('Xfoo', 'foo')]
print re.findall('(.(?:foo))', "Xfoo") # ['Xfoo']

参见 re syntax获取更多信息。

关于Python 正则表达式 - 忽略括号作为索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11985628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com