在其他条件下匹配Python字符串

时间:2018-07-06 04:03:58

标签: python python-2.7

我目前正在尝试根据相同的模式查找行。如果该行与模式匹配,我想在输出文件中打印该行。

以下是“ in.txt”中该行的示例:

in_file [0:2] declk
out_file [0:1] subclk

我目前在@gilch的帮助下拥有的脚本:

#!/usr/bin/python
import re
with open("in.txt", "r+") as f:
    with open("out.txt, "w+") as fo:
    for line in f:   
        if "\S*\s*[\d:\d]\s*\S*" in line:
            fo.write(line) #need to fix this line 

但是,是否可以使输出如下所示: 例如
在“ out.txt”中输出:

in_file [0] declk
in_file [1] declk
in_file [2] declk
out_file [0] subclk
out_file [1] subclk

2 个答案:

答案 0 :(得分:1)

您需要导入re模块才能使用正则表达式。

import re
with open("out.txt", "w+") as fo:
    for line in f:   
        if re.match(r"\S*\s*\[-?\d*:?-?\d*\]\s*\S*", line):
            fo.write(line)

此外,缩进是Python语法的一部分。结肠还不够。

这还假设f已经包含您的行已经可以迭代了。 (以上代码从未分配给它。)

答案 1 :(得分:0)

尝试一下:

import re
with open("out.txt", "w+") as fo:
    for line in f:   
        if re.match(r"\w+\s\[\d\:\d\]\s\w+",line):
            fo.write(line)