忽略python正则表达式中的新行

时间:2016-11-30 05:54:51

标签: python regex python-2.7 python-3.x

我有一个xml数据,有多行,我不想在每一行上进行某些处理。但是我无法使用static ArrayList<Record> record = new ArrayList<>(); static RecordAdapter adapter; public static void delete(String tag) { for (int i = 0; i < record.size(); i++) { if(record.get(i).getUuid().equals(tag)) { record.remove(i); adapter.notifyItemRemoved(i); break; } } } <Row>

标记获取每一行
</Row>

我正在使用re.findAll来获取行方式数据的列表,但要么它不是获取完整数据,要么只是在单个列表索引中获取完整数据

尝试使用以下组合:

<Row ss:AutoFitHeight="0"> <Cell ss:StyleID="s69"><Data ss:Type="String">LcolDefs:</Data></Cell> <Cell ss:StyleID="s69"><Data ss:Type="String">Lkeywords:</Data></Cell> <Cell ss:StyleID="s69"><Data ss:Type="String">TestProcedure</Data></Cell> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> </Row> <Row ss:AutoFitHeight="0"> <Cell ss:StyleID="s71"><Data ss:Type="String">LsetupTest:NMTA-1772</Data></Cell> <Cell ss:StyleID="s72"><Data ss:Type="String">DROP4</Data></Cell> <Cell ss:StyleID="s71"><Data ss:Type="String">TEX::stepCatch log::log notice "start NMTA-1772"</Data></Cell> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s73"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> </Row> <Row ss:AutoFitHeight="0" ss:StyleID="s74"> <Cell ss:StyleID="s69"><Data ss:Type="String">LcolDefs:</Data></Cell> <Cell ss:StyleID="s69"><Data ss:Type="String">Lkeywords:</Data></Cell> <Cell ss:StyleID="s69"><Data ss:Type="String">TestProcedure</Data></Cell> <Cell ss:StyleID="s75"><Data ss:Type="String">Ljoin:Host</Data></Cell> <Cell ss:StyleID="s75"><Data ss:Type="String">Ljoin:Port</Data></Cell> <Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:typeGroup</Data></Cell> <Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:ipAddress</Data></Cell> <Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:connectionType</Data></Cell> <Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:port</Data></Cell> <Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:username</Data></Cell> <Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:password</Data></Cell> <Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:id</Data></Cell> <Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-code</Data></Cell> <Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-pollGetNc</Data></Cell> <Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-checkNe</Data></Cell> <Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-checkDup</Data></Cell> <Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-initializeVar</Data></Cell> <Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-convertToJson</Data></Cell> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> </Row>

但不工作..

1 个答案:

答案 0 :(得分:0)

用正则表达式解析它并不是一个好主意。但我想,你只是想把它做实验。在这种情况下,这应该有所帮助:

import re
with open('your_file.xml','r') as f:
    file_content = f.read()
    result_list = re.findall(r'<Row.+?>((?:\n.*?)*)<\/Row>', file_content)
    for element in result_list:
        print element
        print "---------------------------->"

输出:

<Cell ss:StyleID="s69"><Data ss:Type="String">LcolDefs:</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">Lkeywords:</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">TestProcedure</Data></Cell>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>

---------------------------->

<Cell ss:StyleID="s71"><Data ss:Type="String">LsetupTest:NMTA-1772</Data></Cell>
<Cell ss:StyleID="s72"><Data ss:Type="String">DROP4</Data></Cell>
<Cell ss:StyleID="s71"><Data ss:Type="String">TEX::stepCatch log::log notice "start NMTA-1772"</Data></Cell>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>

---------------------------->

<Cell ss:StyleID="s69"><Data ss:Type="String">LcolDefs:</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">Lkeywords:</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">TestProcedure</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">Ljoin:Host</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">Ljoin:Port</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:typeGroup</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:ipAddress</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:connectionType</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:port</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:username</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:password</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:id</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-code</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-pollGetNc</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-checkNe</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-checkDup</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-initializeVar</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-convertToJson</Data></Cell>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>

---------------------------->

regex101 demo