python - 仅替换匹配正则表达式的起始字符
问题描述
假设我使用正则表达式r'\n[^ \t]+:'
在句子中搜索。它与 和 之类的字符串me@locmsglhost\r\nSubject: injected subject
匹配TARDES.\nLES MANDO LOS REPORTES DE JL\nNOTA: SIN PAROS
。
所以我只想\n
用空格替换字符串中所有出现的正则表达式。
我尝试了几种方法,但它们无法正确处理不同的输入。
解决方案
您可以使用反向引用 ( \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'
推荐阅读
- python - 第一个非零结果按位与python
- python - AttributeError:模块'tensorflow._api.v2.train'没有属性'AdamOptimizer
- python - Python - 列表过滤
- java - 读取子 Firebase 数据库的值
- javascript - 嵌套异步函数中的 setState - React Hooks
- c# - NLog 变量值的编程更改未生效
- java - Spring-WS:如何发送已经封装的消息?
- c# - 如何遍历许多具有相似名称的组合框?
- angular - 转换对象列表并通过与相同的 Id 值比较转换为不同的格式
- java - Spring boot maven多模块项目:编译失败找不到符号