regex - 替换python中两个字符之间的所有字符
问题描述
我正在尝试替换两个字符之间的所有字符。
这将是我的输入字符串:
P<HRVSPECIMEN<<SPECIMENC<<<<<<<K<K<K<K<KKKKKK\n10070070071HRVB212258F1407019<<<<<c<c<<<<<<06
我试图得到这个输出:
P<HRVSPECIMEN<<SPECIMENC<<<<<<<<<<<<<<<<<<<<<\n10070070071HRVB212258F1407019<<<<<<<<<<<<<<06
解决方案
这个正则表达式应该给你你想要的结果。它查找前面有 a 、K
or并且后面有 a 、or或行尾的 or :c
K
c
<
K
c
<
(?<=[Kc<])[Kc](?=[Kc<]|$)
您可以将其与re.MULTILINE
标志一起使用re.sub
:
import re
s = '''P<HRVSPECIMEN<<SPECIMENC<<<<<<<K<K<K<K<KKKKKK
10070070071HRVB212258F1407019<<<<<c<c<<<<<<06'''
s = re.sub(r'(?<=[Kc<])[Kc](?=[Kc<]|$)', '<', s, 0, re.MULTILINE)
print(s)
输出:
P<HRVSPECIMEN<<SPECIMENC<<<<<<<<<<<<<<<<<<<<<
10070070071HRVB212258F1407019<<<<<<<<<<<<<<06
如果\n
您的字符串中的 是文字\n
而不是换行符,只需$
在正则表达式中替换为\\n
:
s = r'P<HRVSPECIMEN<<SPECIMENC<<<<<<<K<K<K<K<KKKKKK\n10070070071HRVB212258F1407019<<<<<c<c<<<<<<06'
s = re.sub(r'(?<=[Kc<])[Kc](?=[Kc<]|\\n)', '<', s, 0)
print(s)
输出:
P<HRVSPECIMEN<<SPECIMENC<<<<<<<<<<<<<<<<<<<<<\n10070070071HRVB212258F1407019<<<<<<<<<<<<<<06
推荐阅读
- json - 使用 jq 向 JSON 对象添加新的根级别属性
- oop - 删除子类中的类方法
- rust - 如何构建包含带有箭头-rs 的结构列表的 Apache 箭头消息?
- json - 如何将iptables日志转成json?
- javascript - 表情符号在文本组件的末尾显示带有标签,如何删除“未定义”?
- javascript - 在 JavaScript 中对事件调用类方法不会更改类属性
- javascript - 断点调试 forEach - JS
- java - 如何在 Java 中使用 for 循环和扫描器添加数组
- python - 如何获取 LabelBox 数据集中的行数?
- javascript - 如何将通过javascript创建的画布居中到屏幕的中心