什么是一个很好的正则表达式来匹配字符串变量的索引?

时间:2013-10-04 18:38:19

标签: python regex

我有一个声明为:

的字符串
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:]

但是,这不是所需的输出。我刚开始使用正则表达式,并且我已经应用了所有我知道的(到目前为止)这个问题,但是,我无法编写有效的正则表达式。感谢帮助,谢谢。

3 个答案:

答案 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']