用于多个分割条件的Python正则表达式

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

我正在努力分割我正在编写的一段代码中的一些文本。该软件正在扫描大约 350 万行文本,其中格式各异。

我仍在努力完成所有事情,但下面的行似乎在文件中相当标准:

示例_FILE_TEXT ID =“20211111.111111 11111”

我想将其拆分如下:

示例文件文本,ID,20211111.111111 11111

尽可能避免对任何要查找的特定文本进行硬编码,因为我仍在解析文件并尝试确定所有不同的变量。我尝试运行以下代码:

conditioned_line = re.sub(r'(\w+=)(\w+)', r'\1"\2"', input_line)
output = shlex.split(conditioned_line)

当我运行此代码时,我得到以下输出:

['示例文件文本','ID=20211111.111111 11111']

我已经成功地拆分了其中的每个元素,但我还没有成功地将它们全部拆分在一起。我怀疑这可以通过正则表达式或使用正则表达式和 shlex 拆分来管理,但如果有人有一些想法,我真的可以使用一些建议。

python regex split shlex
1个回答
0
投票

你可以尝试的是

import re

text = 'EXAMPLE_FILE_TEXT ID="20211111.111111 11111"'
pattern = r'(\w+)\s+(\w+)="([^"]*)"'
matches = re.findall(pattern, text)

if matches:
    result = list(matches[0])  
    print(result)

结果

=================== RESTART: C:\Users\Bhargav\Desktop\test.py ==================
['EXAMPLE_FILE_TEXT', 'ID', '20211111.111111 11111']

说明

(\w+) - EXAMPLE_FILE_TEXT
\s+ - Matches whitespace
(\w+) - ID
=" - Matches equals and opening quote
([^"]*) - Captures everything inside the quotes
" - Matches the closing quote
© www.soinside.com 2019 - 2024. All rights reserved.