我有一个声明为:
的字符串String testString = "1: 2, 3\n2: 3, 4\n3: 1\n4: 2\n5: 6, 7, 8"
我想编写一个正则表达式,它可以返回索引,即返回以下列表(或任何集合):
[1,2,3,4,5]
我知道如果我将正则表达式写成:
regex = r'[0-9]:'
我会得到:
[1:,2:,3:,4:,5:]
但是,这不是所需的输出。我刚开始使用正则表达式,并且我已经应用了所有我知道的(到目前为止)这个问题,但是,我无法编写有效的正则表达式。感谢帮助,谢谢。
答案 0 :(得分:3)
您可以使用r'[0-9]+(?=:)'
,它使用前瞻
答案 1 :(得分:1)
regx = re.compile('(?<!\d)\d+(?=\s*:)')
答案 2 :(得分:1)
您可以使用正则表达式,然后使用列表推导来删除尾随冒号:
>>> [a.strip(':') for a in re.findall(r"[0-9]:", testString)]
['1', '2', '3', '4', '5']