我有一个字符串如下:
line ="这是一个文本。这是另一个文本,逗号后面没有空格。"
我想在点和逗号之后添加一个空格,以便最终结果为:
newline ="这是一个文字。这是另一个文本,逗号后面没有空格。"
我从这里尝试了解决方案:Python Regex that adds space after dot,但它仅适用于点或逗号。我无法掌握如何让正则表达式同时识别这两个字符。
答案 0 :(得分:8)
使用此正则表达式匹配前一个字符为点或逗号的位置,下一个字符不是空格:
(?<=[.,])(?=[^\s])
(?<=[.,])
正面观察,寻找点或逗号 (?=[^\s])
积极前瞻,与不是空格 因此,这会匹配逗号之后的位置或ext.This
或text,it
之类的空格。但不是word. This
。
替换为单个空格()
的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. '
>>>