Python正则表达式替换字符串保存程序野生字符

时间:2018-03-27 04:20:52

标签: python regex python-2.7

我需要在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。

我尝试采取两步法:

  1. 用abc替换@abc,然后替换白名单字符。
  2. 将剩余的@abc替换为abc_1
  3. 我对第2步没有任何问题,但是第一步,我能够检测到正确的模式,但不确定如何在@abc之后保留字符

    例如,

    str = "hello @abc.def blar blar"
    print(re.sub(r'@abc[\.\s=]+', 'abc', str))
    

    这会产生没有“。”的结果。炭

    hello abcdef blar blar
    

    感谢是否有人可以就此提出建议。

0 个答案:

没有答案