Python Regex在点或逗号后添加空格

时间:2017-05-30 13:19:19

标签: python regex

我有一个字符串如下:

line ="这是一个文本。这是另一个文本,逗号后面没有空格。"

我想在点逗号之后添加一个空格,以便最终结果为:

newline ="这是一个文字。这是另一个文本,逗号后面没有空格。"

我从这里尝试了解决方案:Python Regex that adds space after dot,但它仅适用于点逗号。我无法掌握如何让正则表达式同时识别这两个字符。

2 个答案:

答案 0 :(得分:8)

使用此正则表达式匹配前一个字符为点或逗号的位置,下一个字符不是空格:

(?<=[.,])(?=[^\s])
  • (?<=[.,])正面观察,寻找逗号
  • (?=[^\s])积极前瞻,与不是空格
  • 的任何内容相匹配

因此,这会匹配逗号之后的位置或ext.Thistext,it之类的空格。但不是word. This

替换为单个空格(

Regex101 Demo

的Python:

line = "This is a text.This is another text,it has no space after the comma."
re.sub(r'(?<=[.,])(?=[^\s])', r' ', line)

// Output: 'This is a text. This is another text, it has no space after the comma.'

答案 1 :(得分:1)

或者你也可以在没有正则表达式的情况下解决,如下:

>>> line = "This is a text.This is another text,it has no space after the comma."
>>> line.replace('.', '. ', line.count('.')).replace(',', ', ', line.count(','))
'This is a text. This is another text, it has no space after the comma. '
>>>