我有文件:

If MARA.MTART in ('ZPLW', 'ZFTW'), then MARA.PSTAT like '%K%'
If MARA.MTART in ('ZPLW', 'ZFTW'), then MARA.MATKL = '99999999'

我想通过在"."之后添加每个单词来解析它添加到列表(MTART、PSTAT、MATKL),如果该列表已在列表中,则跳过它.

因此, list 如下:

list = ['MTART', 'PSTAT', 'MATKL']

我不知道该怎么办.

推荐答案

Python :

这可以通过re库使用正则表达式轻松实现..findall()方法的Documentation可在此处找到.

迭代数据文件的行,搜索定义的文本模式,并将结果填充到输出列表中.使用set()函数从列表中删除重复值,因为在一个集合中只允许唯一的值.

图案说明:'\.([A-Z]+)'

  • 查找句号(.)
  • 搜索和capture个一个或多个大写字符,并在找到第一个非大写字符时停止捕获.

示例代码:

import re

rexp = re.compile('\.([A-Z]+)')
found = []

with open('./mara.csv') as f:
    for line in f:
        found.extend(rexp.findall(line))
        
list(set(found))

输出:

['MTART', 'MATKL', 'PSTAT']

GNU:

另一方面,如果您想改用GNU工具,可以通过以下方式实现:

grep -Eo "\.([A-Z]+)" mara.csv | awk -F. '{print $2}' | sort | uniq

输出:

MATKL
MTART
PSTAT

Python相关问答推荐

回归回溯-2D数组中的单词搜索

想要使用Polars groupby_Dynamic来缩减时间序列收件箱(包括空垃圾箱)

如何在Pygame中绘制右对齐的文本?

如果我已经使用了time,如何要求Python在12秒后执行另一个操作.sleep

DuckDB将蜂巢分区插入拼花文件

如何使用上下文管理器创建类的实例?

Python -根据另一个数据框中的列编辑和替换数据框中的列值

如何从具有多个嵌入选项卡的网页中Web抓取td类元素

将DF中的名称与另一DF拆分并匹配并返回匹配的公司

非常奇怪:tzLocal.get_Localzone()基于python3别名的不同输出?

追溯(最近最后一次调用):文件C:\Users\Diplom/PycharmProject\Yolo01\Roboflow-4.py,第4行,在模块导入roboflow中

Excel图表-使用openpyxl更改水平轴与Y轴相交的位置(Python)

OR—Tools CP SAT条件约束

运输问题分支定界法&

当点击tkinter菜单而不是菜单选项时,如何执行命令?

用砂箱开发Web统计分析

pysnmp—lextudio使用next()和getCmd()生成器导致TypeError:tuple对象不是迭代器''

如何将数据帧中的timedelta转换为datetime

为什么在FastAPI中创建与数据库的连接时需要使用生成器?

通过追加列表以极向聚合