後添加的空間,我有一個字符串,如下所示:Python的正則表達式來點或逗號
行=「這是一個text.This是另一種文本,它有逗號後沒有空間」
我想點和逗號後面加一個空格,這樣最終的結果是:
換行符=「這是一個文本這是另一個文本,它有逗號後沒有空間。」
我試過這裏的解決方案:Python Regex that adds space after dot,但它只適用於點或逗號。我一直無法掌握如何讓正則表達式同時識別兩個字符。
後添加的空間,我有一個字符串,如下所示:Python的正則表達式來點或逗號
行=「這是一個text.This是另一種文本,它有逗號後沒有空間」
我想點和逗號後面加一個空格,這樣最終的結果是:
換行符=「這是一個文本這是另一個文本,它有逗號後沒有空間。」
我試過這裏的解決方案:Python Regex that adds space after dot,但它只適用於點或逗號。我一直無法掌握如何讓正則表達式同時識別兩個字符。
使用此正則表達式匹配的位置,其中前面的字符是一個點或逗號和下一個字符不是空格:
(?<=[.,])(?=[^\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.'
或者你也可以不用正則表達式解決如下:
>>> 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. '
>>>
作爲一個簡單的解決方案,因爲你不喜歡正則表達式,爲什麼不做兩個經過?一個用於處理句點,另一個用於處理逗號。 –
你也可以做到沒有正則表達式 – Gahan