Python:在数字后替换空格,在字母后保留空格
作为预处理数据的一部分。我希望能够用数字替换空格,让空格后面跟一个字符。 例如:Python:在数字后替换空格,在字母后保留空格,python,regex,Python,Regex,作为预处理数据的一部分。我希望能够用数字替换空格,让空格后面跟一个字符。 例如: Input String: '8.1.7 Sep 2000 Dec 2004 Dec 2006 Indefinite' Expected output: '8.1.7,Sep 2000,Dec 2004,Dec 2006,Indefinite' 我在python中使用基于正则表达式的replace函数: re.sub("\s+", ",", release) 但这并不是获取所需的结果,因为这意味着替换所有空
Input String: '8.1.7 Sep 2000 Dec 2004 Dec 2006 Indefinite'
Expected output: '8.1.7,Sep 2000,Dec 2004,Dec 2006,Indefinite'
我在python中使用基于正则表达式的replace函数:
re.sub("\s+", ",", release)
但这并不是获取所需的结果,因为这意味着替换所有空格,但不确定如何将空格后跟字符,即[a-z]
或者我需要重新考虑一下方法。您可以使用
(?您可以尝试使用反向引用:
>>> re.sub(r"(\d)\s+", r"\1,", '8.1.7 Sep 2000 Dec 2004 Dec 2006 Indefinite')
'8.1.7,Sep 2000,Dec 2004,Dec 2006,Indefinite'
因此,代码是:
release = re.sub(r"(\d)\s+", "\1,", release)
解释:
(\d)
匹配一个数字并将其放入第一个匹配组
\s+
匹配空格
- 替换:
\1
引用您找到的数字并将其放回(不带空格)
这让我得到了“8.1,200年9月,200年12月,200年12月,无限期”的结果。吃最后一个数字好吧,我不想这么说,但它对我有用;-)请检查一下,似乎你是对的,我的IDE有问题,
release = re.sub(r"(\d)\s+", "\1,", release)