python : replacing a space after numbers keeping space after letters

标签 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 中使用基于正则表达式的替换函数:

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/

相关文章:

regex - sed 用于用 ""替换特殊字符

ruby - Ruby 字符串上的扫描和匹配有什么区别

python - tensorflow 1.13如何安全使用tf.searchsort?

python - Twitter API 搜索困难

c++ - 用于检测分号终止的 C++ for 和 while 循环的正则表达式

python - 使用 Python os.walk 识别文件列表

java - 如何使用 java 正则表达式检测一个字符串是否包含多个字符之一

regex - perl 查找并替换删除文件

python - 为什么 "or"和 "|"运算符共享相同的 "__or__"魔术方法?

java - 如何使用正则表达式匹配中间也可以有空格的八位数字?