如何使用正则表达式基于前导文本从xml中提取值?

时间:2018-02-15 15:00:29

标签: regex regex-lookarounds

我有以下格式的xml响应

...
<field>
    <fieldType>DOCUMENT</fieldType>
    ...
    <fieldId>12345</fieldId>
    <id>21345</id>
    <isActive>F</isActive>
    ....
</field>
<field>
    <fieldType>FOLDER</fieldType>
    ...
    <fieldId>15345</fieldId>
    <id>11345</id>
    <isActive>T</isActive>
    ....
</field>
<field>
    <fieldType>DOCUMENT</fieldType>
    ...
    <fieldId>98765</fieldId>
    <id>57689</id>
    <isActive>T</isActive>
    ....
</field>
...

xml中有多个这样的值。我只需要提取fieldId 1.活跃的,即T. 2.是fieldType DOCUMENT。

我尝试了以下正则表达式,

<fieldType>DOCUMENT</fieldType>.+?<fieldId>(.+?)</fieldId>.+?<isActive>T</isActive>

但这是第一次出现fieldId,12345(即使它不活跃)而不是98765

P.s:我正在尝试使用这个正则表达式

1 个答案:

答案 0 :(得分:0)

xml解析器可能是更好的解决方案。但是根据你的问题,这似乎可以达到预期的效果。

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { randomTexts.append("sasojsfijfsiahfsifhiafs") collectionView.insertItems(at: [IndexPath(row: 0, section: 0)]) }

在这里试试吧! https://regexr.com/3krn4