我有几个看起来像这样的字符串
"Abcde fgh 123,456"
我想将其拆分为
["Abcde fgh", "123,456"]
我尝试了
string = "Abcde fgh 123,456"
re.split(r'(\d+)', string)
但这给了
["Abcde fgh", "123", "," "456"]
答案 0 :(得分:2)
之所以能够得到此结果,是因为您使用了一个带有split的捕获组,该捕获组还将返回捕获的文本。
您可以改用正向前行。 (?=\d)
可以使用,但为了更精确地显示示例数据,您还可以使用:
(?<!\d)\s+(?=\d+,\d+)
import re
string = "Abcde fgh 123,456"
print(re.split(r'(?<!\d)\s+(?=\d+,\d+)', string))