Регулярное выражение для соответствия созвездию XML - PullRequest
0 голосов
/ 22 февраля 2012

Так что я хочу соответствовать случаю, когда у меня есть 2 раза mysubtag в mytag. Итак:

...<mytag>.....<mysubtag>...</mysubtag>..<mysubtag>...</mysubtag>....</mytag>...

где ... - случайные символы, включая символы новой строки.

Я не хочу сопоставлять 2 метага с каждым 1 субтегом

...<mytag>.....<mysubtag>...</mysubtag>....</mytag>...<mytag>.....<mysubtag>...</mysubtag>....</mytag>...

Есть ли хитрость?

я делаю сопоставление в затмении, и то, что я получил до сих пор:

<mytag[\s\S]*?<mysubtag[\s\S]*?</mysubtag>[\s\S]*?<mysubtag[\s\S]*?</mysubtag>[\s\S]*?</mytag>

но это соответствует второму примеру

EDIT Итак, суть: не используйте регулярные выражения для этих задач Я начал новую тему там Xpath найти файлы для windows? парсер xml для поиска файлов в windows

1 Ответ

0 голосов
/ 22 февраля 2012

Используя что-то , созданное для анализа XML, это намного проще.Это выражение XPath должно соответствовать созвездию XML, которое вы ищете.

//mytag[count(mysubtag)=2]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...