获取比赛中无限次数的重复比赛?

时间:2019-04-15 10:05:22

标签: python regex

我要解析的

XML:

<target>
    <mrk mtype="seg" mid="1">Text 1</mrk>
    <mrk mtype="seg" mid="2">Text 2</mrk>
</target>

我想做什么,更具体地说:

使用正则表达式查找并替换mrk ... / mrk标签中的文本,但仅适用于目标标签中的mrk标签(例如,忽略源标签中的mrk标签)。

我尝试过的事情:

<target>(<mrk mtype=\"seg\" mid=\"\d\">(.*?)</mrk>)</target>

失败:

这将Text1和Text2合并在一起。

无论目标标签中只有一组mrk标签,还是有2、3等,我都希望将它们分开获取。

这可能与正则表达式有关吗?

解释我该怎么做的另一种方式是说我想捕捉:

<target>(.*?)</target>

,然后捕获以下所有实例:

<mrk mtype=\"seg\" mid=\"\d\">(.*?)</mrk>

分别位于目标标签内-不再像现在那样混在一起。

其他故障:

据我所知,我不能将其分解为两个表达式,因为我需要做的是首先找到目标标签,然后替换目标标签中标记的标签之间的文本。

1 个答案:

答案 0 :(得分:0)

带有全局标志的

"(.[^"]*)"会给您单引号内的任何内容