gpt4 book ai didi

Python re.finditer() : concisely detect "A or :B or C:D"

转载 作者:太空狗 更新时间:2023-10-30 03:06:37 32 4
gpt4 key购买 nike

我正在寻找一个正则表达式,它只返回字符串“A :B C:D”的三个匹配组其中 A、B、C、D 是单词示例 (\w+)以下 Python 代码打印不需要的 (None,None)。

我只想 ('A',None) (None,'B') 和 ('C','D') 使用一个正则表达式(没有添加用于过滤的 python 代码)。

for m in re.compile(r'(?:(\w+)|)(?:(?::)(\w+)|)').finditer('A :B C:D'):
print m.groups()

最佳答案

这可能会成功:

(?=[\w:])(\w*)(?::(\w*))?

(\w*)(?::(\w*))? 描述了你想要的结构,但它有一个问题,它也匹配空字符串;因此我们必须确保在开头至少有一个非空格字符(它将被贪婪运算符匹配),并且在开头的前瞻会做到这一点。

编辑:粘贴错误:)

关于Python re.finditer() : concisely detect "A or :B or C:D",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7833919/

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