0

我有一个字符串声明为:

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:]

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

4

3 回答 3

3

您可以使用r'[0-9]+(?=:)',它使用前瞻

于 2013-10-04T18:40:41.190 回答
1
regx = re.compile('(?<!\d)\d+(?=\s*:)')
于 2013-10-04T18:41:58.220 回答
1

您可以使用您的正则表达式,然后使用列表理解来删除尾随冒号:

>>> [a.strip(':') for a in re.findall(r"[0-9]:", testString)]
['1', '2', '3', '4', '5']
于 2013-10-04T18:42:07.880 回答