【发布时间】:2009-12-11 01:36:38
【问题描述】:
我需要解析文本列表:
1 List name
1 item
2 item
3 item
2 List name
1 item
2 item
3 item
3 List name
1 item
2 item
3 item
我正在尝试使用正则表达式来拆分第一级列表:
import re
def re_show(pat, s):
print re.compile(pat, re.S).sub("{\g<0>}", s),'\n'
s = '''
1 List name
1 item
2 item
3 item
2 List name
1 item
2 item
3 item
3 List name
1 item
2 item
3 item
'''
re_show('\n\d+.*?(?=\n\n\d+.*?\n\n)', s)
但它不起作用。而不是这个:
{
1 List name
1 item
2 item
3 item}
{
2 List name
1 item
2 item
3 item}
{
3 List name
1 item
2 item
3 item}
我有这个:
{
1 List name}
{
1 item
2 item
3 item}
{
2 List name}
{
1 item
2 item
3 item}
3 List name
1 item
2 item
3 item
你会推荐什么来解决这个任务?
感谢您的回答。我学到了 Python 的许多新特性。
我想,我会使用here所描述的“状态机”方法
【问题讨论】: