gpt4 book ai didi

python - Python正则表达式匹配方括号内的数字列表

转载 作者:行者123 更新时间:2023-12-01 02:14:04 24 4
gpt4 key购买 nike

因此,我试图做一个从文本返回所有引用(CITS)的函数,有时此文本是一个列表,这就是为什么我首先对其进行验证的原因。

def get_cits_from_note(note):
if note:
if isinstance(note, list):
note = "".join(note)
matchGroups = re.findall(r'\|CITS\s*:*\s*\[\s*(\d+)', note)
if matchGroups:
citsList = [match for match in matchGroups]
print citsList


文本将是这样的(文本是我从Wikipedia复制/粘贴的东西,这就是为什么它没有任何意义):


  括号是高标点符号,通常用于文本中的匹配对中| CITS:[123],[456],[789] |分开或插入其他文字。最好将匹配对描述为开放和| CITS:[999] |。在左至右的上下文中,它的形式可能不那么正式,可以描述为左右,在右至左的上下文中,可以描述为左右。


这是我构建的第一个正则表达式:

matchGroups = re.findall(r'\|CITS\s*:*\s*\[\s*(\d+)', note)


但它只会打印:

[u'123']


所以我做了第二个正则表达式:

matchGroups = re.findall(r'\|CITS\s*:*\s*((\[\s*(\d+)]+,*\s*)+)\|', note)


但它不能像我想要的那样导致它打印:

[(u'[123], [456], [789]', u'[789]', u'789'), (u'[999]', u'[999]', u'999')]


我使用这种正则表达式已有一段时间了,我无法使其正常运行,有人可以告诉我我想念的是什么吗?

最终输出应为:

[u'123',u'456',u'789',u'999']

最佳答案

import re
note = "A bracket is a tall punctuation mark typically used in matched pairs within text, |CITS: [123],[456],[789]| to set apart or interject other text. The matched pair is best described as opening and |CITS: [999]|. Less formally, in a left-to-right context, it may be described as left and right, and in a right-to-left context, as right and left."
matchGroups = re.findall(r'\d+', note)
print matchGroups


输出:

['123', '456', '789', '999']

关于python - Python正则表达式匹配方括号内的数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48514846/

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