我有一个包含以下信息的数据文件: 我感兴趣的是只检索模式
len:XXXX大于200
TY_DN106_c0_g2::TY_DN106_c0_g2_i1::g.1::m.1 type:internal len:123 gc:universal TY_DN106_c0_g2_i1:1-366(+) TY_DN106_c0_g2::TY_DN106_c0_g2_i1::g.2::m.2 type:internal len:213 gc:universal TY_DN106_c0_g2_i1:366-1(-) TY_DN108_c0_g1::TY_DN108_c0_g1_i1::g.3::m.3 type:5partial len:513 gc:universal TY_DN108_c0_g1_i1:3-341(+)
我如何用Python或其他脚本语言来实现它
以下是一个例子:
如果您不想将结果写入新文件,请尝试以下操作:
以下是@Henry Harutyunyan的regex示例:
对于data.txt文件中的数据,如下所示:
使用正则表达式: 1.找到合适的线路 2.提取数 3.将数字与条件进行比较
输出:
您可以使用
len:([2-9]\d{2}|[1-9]\d{3,})
regex获得所需的匹配项如果要匹配整行,请使用以下命令:
^.*len:([2-9]\d\d|[1-9]\d{3,}).*$
正则表达式解释
表达式的第一部分:
len:
与字符'len:'字面匹配之后,在第一个捕获组中,我们有两个备选方案
第一个选项:
[2-9]\d{2}
匹配一个介于2和9之间的数字,后跟任意两位数,从而覆盖从200到999的所有数字第二个选项:
[1-9]\d{3,}
匹配以数字1到9开头的所有字符,然后是其他3个数字,从而覆盖从1000到inf的所有整数,而不包括以0开头的数字字符相关问题 更多 >
编程相关推荐