如何获取仅包含一种模式的线?

问题描述 投票:0回答:1

我想在 bash 或 python 中过滤掉一个数据框,这样我就可以获得只包含给定模式之一而没有其他内容的行。

示例:

数据框:

OG1   Abc1  Def1  Klm3  
OG2   Def1  Ghj1  Abc3
OG3   Ghj2  Abc1  Abc2
OG4   Nop5  Ghj7

搜索模式:

Abc[0-9]*
Ghj[0-9]*
Nop[0-9]*

所需输出:

OG3  Ghj2  Abc1  Abc2
OG4  Nop5  Ghj7
python bash dataframe filtering
1个回答
0
投票

除非我做错了什么,否则你的搜索模式,也在 regex101 上尝试过,不会返回任何行。

无论如何,Python代码将满足您的需求,当然,将其替换为正确的正则表达式模式:

import re

data = open("NAME_OF_YOUR_DATAFRAME_FILE.txt")
pattern = "YOUR_RE_PATTERN"

for line in data:
    if re.match(pattern, line):
        print(line)

也许有像这样的图案? /Ghj[0-9]{1,} Abc[0-9]{1,}/

© www.soinside.com 2019 - 2024. All rights reserved.