gpt4 book ai didi

Python 正则表达式匹配或标记化

转载 作者:行者123 更新时间:2023-11-28 23:01:19 24 4
gpt4 key购买 nike

我有一个数据结构的转储,我正试图将其转换成 XML。该结构中有许多嵌套结构。所以我有点不知道如何开始,因为我能想到的所有正则表达式都不适用于嵌套表达式。

例如,假设有一个这样的结构转储:

abc = (  
bcd = (efg = 0, ghr = 5, lmn = 10),
ghd = 5,
zde = (dfs = 10, fge =20, dfg = (sdf = 3, ert = 5), juh = 0))

我想得到这样的输出:

< abc >
< bcd >
< efg >0< /efg >
< ghr >5< /ghr >
< lmn >10< /lmn >
< /bcd >
.....
< /abc >

那么什么是解决这个问题的好方法呢?对表达式进行分词,聪明的正则表达式还是使用堆栈?

最佳答案

使用 pyparsing。

$ cat parsing.py 
from pyparsing import nestedExpr

abc = """(
bcd = (efg = 0, ghr = 5, lmn 10),
ghd = 5,
zde = (dfs = 10, fge =20, dfg = (sdf = 3, ert = 5), juh = 0))"""
print nestedExpr().parseString(abc).asList()

$ python parsing.py
[['bcd', '=', ['efg', '=', '0,', 'ghr', '=', '5,', 'lmn', '10'], ',', 'ghd', '=', '5,', 'zde', '=', ['dfs', '=', '10,', 'fge', '=20,', 'dfg', '=', ['sdf', '=', '3,', 'ert', '=', '5'], ',', 'juh', '=', '0']]]

关于Python 正则表达式匹配或标记化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11143243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com