在 Python 脚本中使用正则表达式 [重复]

Posted

技术标签:

【中文标题】在 Python 脚本中使用正则表达式 [重复]【英文标题】:Using regex in Python script [duplicate] 【发布时间】:2019-07-13 13:21:34 【问题描述】:

我正在尝试编写一个 python 脚本来搜索和替换这一行:

时间剩余 3 总计

空行。

这是我的脚本:

import glob


read_files = glob.glob("*.agr")

with open("out.txt", "w") as outfile:
    for f in read_files:
        with open(f, "r") as infile:
            outfile.write(infile.read())

with open("out.txt", "r") as file:
    filedata = file.read()
filedata = filedata.replace(r'#time\s+residue\s+[0-9]\s+Total', 'x')
with open("out.txt", "w") as file:
    file.write(filedata)

使用这个,我无法得到任何替代品。为什么会这样?其余代码工作正常。输出文件没有改变,所以我怀疑找不到模式。

谢谢。

【问题讨论】:

【参考方案1】:

str.replace 方法替换固定子字符串。如果您要替换正则表达式模式的匹配项,请改用 re.sub

import re
filedata = re.sub(r'#time\s+residue\s+[0-9]\s+Total', 'x', filedata)

【讨论】:

谢谢!这行得通!

以上是关于在 Python 脚本中使用正则表达式 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在Python中使用正则表达式解析具有重复模式的字符串?

Shell脚本——正则表达式

re正则匹配模块_python

偷学Python第三十一天:Python正则表达式的语法以及re模块的使用

偷学Python第三十一天:Python正则表达式的语法以及re模块的使用

删除网址中第一个正斜杠之前的所有内容[重复]