我需要在Python中使用正则表达式替换字符串中的某些值。示例字符串
hello @abc.def blar blar => hello abc.def blar blar
hello @abc.def.gh blar blar => hello abc.def.gh blar blar
hello @abc.def=gh blar blar => hello abc.def=gh blar blar
hello (@abc.def)gh blar blar => hello (abc.def)gh blar blar
hello @abc.def_gh blar blar => hello abc_1.def_gh blar blar
注意当@abc后跟空格,点,等号或圆括号时,@ abc将替换为abc,否则@abc将替换为abc_1。
我尝试采取两步法:
我对第2步没有任何问题,但是第一步,我能够检测到正确的模式,但不确定如何在@abc之后保留字符
例如,
str = "hello @abc.def blar blar"
print(re.sub(r'@abc[\.\s=]+', 'abc', str))
这会产生没有“。”的结果。炭
hello abcdef blar blar
感谢是否有人可以就此提出建议。