Я пытаюсь найти регулярное выражение, которое может вывести значение из строки, которая отформатирована как XML, но находится внутри тега CDATA. Строка выглядит так:Regex для захвата значения в узле XML.
<OAORNO>1234546qwerty</OAORNO><OBITNO>12345-qwerty</OBITNO><OBITDS>123456 qwerty</OBITDS>
Значения могут быть цифрами, символами слов, специальными символами и пробелами. Или любая их комбинация. Поэтому мне нужен один размер, соответствующий всем шаблонам.
У меня есть сплит-преобразователь строк, который принимает регулярные выражения в качестве параметра. Конвертер разделит sting на основе параметра, который вы его подаете, и верните строку в виде массива. Который я буду отображать в виде списка.
Однако у меня есть время, пытаясь создать один размер, подходящий для всех регулярных выражений в соответствии с моими потребностями.
Ближайшая модель я придумал это:
(?<=\>)(.+)(?=\<)
Но это захватывает все между первыми и последними узлами. Так как в примере выше она захватывает все между и так вы в конечном итоге с:
1234546qwerty</OAORNO><OBITNO>12345-qwerty</OBITNO><OBITDS>123456 qwerty
Там должен быть способ сделать это, любая помощь будет оценен по достоинству!
Вы не можете abritrary XML надежно с Regex. Есть ли причина, по которой вы не можете использовать стандартный синтаксический анализатор XML? – Mitch
В среде, в которой я работаю, есть ограничения, которые мешают мне использовать код позади. – EMAW2008
Вы можете получить доступ к синтаксическим анализаторам XML в большинстве шаблонов, или вы можете сделать это на стороне клиента. Если у вас есть регулярное выражение, вы должны иметь возможность использовать правильный синтаксический анализатор XML. Какие рамки вы используете? – Mitch