假设我有一个这样的文件:
'''
MFTF2LH_LSetC1_D-10_hot50_fa00_bpmax
MFTF2LH_LSetC1_D-11_hot50_fa00_bpmax
MFTF2LH_LSetC1_D-01_hot56_fa00_bpmax
MFTF2LH_LSetC1_D-02_hot56_fa00_bpmax
MFTF2LH_LSetC1_D-03_hot56_fa00_bpmax
MFTF2LH_LSetC1_D-04_hot50_fa00_bpmax
MFTF2LH_LSetC1_D-07_hot43_fa00_bpmax
MFTF2LH_LSetC1_D-10_hot56_fa00_bpmax
'''
但却有数百万或几排
我想做的是逐行阅读,忽略以下内容:
因此,对于上面的示例行,只有最后三行将被忽略
我正在使用这个regex
模式来实现这个技巧(test here):
pattern = '(_D-0[1-7]_hot(43|50)|_D-0[8,9]_hot56|_D-1[0,1]_hot56)'
但我想知道是否有更好的方法,因为我只想返回一个布尔值;没有任何团体或任何东西
顺便说一句,我完全是个初学者
我将
grep
与-v
(还原匹配项)一起使用:它完全匹配您不需要的内容,然后还原匹配项
您可以通过使备选方案仅在字符串中的不同位置匹配来改进您的模式
使用
参见regex demo
图案细节:
_D-
-文字子串(?:
-非捕获组的开始(与捕获组不同,没有为组创建内存缓冲区)匹配:1[01]_hot56
-1
,然后0
或1
,然后_hot56
|
-或0
-a0
字符,然后(?:
-第二个非捕获组[89]_hot56
-8
或9
然后_hot56
|
或[1-7]_hot(?:43|50)
—从1
到7
的数字,然后是_hot
,然后是43
或50
)
-第二个非捕获组的结尾)
-第一个非捕获组的结尾相关问题 更多 >
编程相关推荐