作为预处理我的数据的一部分。我希望能够替换空格后跟数字,同时保留空格后跟一个字符。 例如:
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 中使用基于正则表达式的替换函数:
re.sub("\s+", ",", release)
但这并没有获取所需的结果,仅仅是因为这意味着要替换所有空格,不确定如何保留后面跟有字符的那个,即 [a-z]
。
或者我可能需要重新考虑方法。
最佳答案
您可以使用 (?<=\d)
在空格前需要一个数字:
release = re.sub(r"(?<=\d)\s+", ",", release)
参见 regex demo
详情
-
(?<=\d)
- 正向后视,要求数字立即出现在当前位置的左侧 -
\s+
- 1 个或多个空白字符。
关于 python : replacing a space after numbers keeping space after letters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49027196/