Получить неопределенное количество повторных матчей в матче? - PullRequest
0 голосов
/ 15 апреля 2019

XML, который я пытаюсь проанализировать:

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

Что я хочу сделать, более конкретно:

Используйте regex для поиска и замены текста в тегах 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 голосов
/ 15 апреля 2019

"(.[^"]*)" с глобальным флагом даст вам что-нибудь в кавычках индивидуально

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...