我有几串看起来像

"Abcde fgh 123,456"


我想将其拆分为

["Abcde fgh", "123,456"]


我试过了

string = "Abcde fgh 123,456"
re.split(r'(\d+)', string)


但这给

["Abcde fgh", "123", "," "456"]

最佳答案

之所以会得到该结果,是因为您将捕获组与split一起使用,该捕获组还将返回捕获的文本。

您可以改用正向前瞻。 (?=\d)可以工作,但是为了更精确地显示示例数据,您还可以使用:

(?<!\d)\s+(?=\d+,\d+)

Regex demo

import re
string = "Abcde fgh 123,456"
print(re.split(r'(?<!\d)\s+(?=\d+,\d+)', string))

关于python - 拆分字母数字字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53546442/

10-10 11:01