仅替换匹配的正则表达式的开始字符

时间:2018-10-15 12:01:36

标签: python regex replace

假设我使用正则表达式r'\n[^ \t]+:'来填充句子。 它与me@locmsglhost\r\nSubject: injected subjectTARDES.\nLES MANDO LOS REPORTES DE JL\nNOTA: SIN PAROS之类的字符串匹配。

所以我只想用空格替换字符串中所有正则表达式的开头\n

我尝试了几种方法,但是它们不能正确处理不同的输入。

1 个答案:

答案 0 :(得分:1)

您可以使用反向引用(\1):

>>> import re
>>> s = 'me@locmsglhost\r\nSubject: injected subject'
>>> re.sub(r'\n([^ \t]+:)', r' \1', s)
'me@locmsglhost\r Subject: injected subject'

或前瞻性断言((?=...)):

>>> re.sub(r'\n(?=[^ \t]+:)', ' ', s)
'me@locmsglhost\r Subject: injected subject'