当前位置:  开发笔记 > 编程语言 > 正文

Python正则表达式在内部找到并替换

如何解决《Python正则表达式在内部找到并替换》经验,为你挑选了1个好方法。



1> falsetru..:

使用fileinput.FileInput,用inplace=True.打印行将用作每行的替换字符串.

myfile = fileinput.FileInput("inputRegex.txt", inplace=True)

for line in myfile:
    line = re.sub(r"[+-]? *(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?",
                  "foundValue",
                  line.rstrip())
    print(line)

UPDATE

re.sub可以接受作为替代的功能.它将使用match对象调用,函数的返回值用作替换字符串.

以下是稍微修改的版本以使用捕获的组(用于替换功能).

line = re.sub(r"([+-]? *)(\d+(?:\.\d*)?|\.\d+)([eE][+-]?\d+)?",
              lambda m: m.group(1) + re.sub('(\..{4}).*', r'\1', m.group(2)) + (m.group(3) or ''),
              line.rstrip())

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有