python - 如何在特定值上过滤具有特定模式的特定条目?
问题描述
我有一个包含以下信息的数据文件:我有兴趣只检索模式所在的条目
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 或其他脚本语言来做呢?
解决方案
您可以使用len:([2-9]\d{2}|[1-9]\d{3,})
正则表达式来获取所需的匹配项。
如果要匹配整行,请使用:^.*len:([2-9]\d\d|[1-9]\d{3,}).*$
.
正则表达式解释
表达式的第一部分:按字面意思len:
匹配字符'len:' 。
之后,在第一个捕获组中,我们有 2 个备选方案。
第一个选项:[2-9]\d{2}
匹配 2 到 9 之间的数字,后跟任意两位数字,从而覆盖 200 到 999 的所有数字。
第二个选项:[1-9]\d{3,}
匹配所有以数字 1 到 9 开始,后跟 3 个其他数字的字符,从而覆盖从 1000 到 inf 的所有整数,省略以 0 开头的数字字符。
推荐阅读
- sql - 更新声明,忽略重复值
- azure - 将增量数据从 AWS S3 复制到 Azure Data Lake Storage Gen2 失败
- git - 如何使用 git 简单地查看以前的版本而不还原或重置?
- android - 排毒构建成功,但排毒测试失败
- wpf - 为什么格式错误的 XAML 似乎编译然后在运行时失败?
- windows - Disable-PnpDevice 失败且设备状态为“错误”
- android - 从浏览器重定向到 Android 应用程序 - 在发布应用程序之前
- c# - C# - 写入不同数组时对象数组中的值被覆盖
- selenium - 如何使用 Codeception 执行 Javascript 并获取返回值
- scala - 由于多个 scala lib 版本,intellij 2019.02 无法运行任何 scala 类