У меня этот сегмент xml.Нужно регулярное выражение с использованием PHP
<condition name="gender" value="male">
<condition name="somethingelse" value="somevalue">Target string</condition>
</condition>
Вы можете видеть, что они вложены.
Что мне нужно сделать, это получить среднее условие, содержащее «целевую строку».
Люди, вероятно, предложит использовать XML-парсер или что-то в этом роде, но я хочу сделать это с помощью регулярного выражения.
Я перепутал с регулярным выражением, но я просто не знаю их достаточно хорошо.
Возьмите это, например.
$regex = '<condition name="[a-z0-9]+" value="[a-z0-9]+">([^<>].*?)<\/condition>';
preg_match_all ('/' . $regex . '/i', $haystack, $stuff);
То, что я пытался сделать, был матч теги, но игнорировать все, что содержит < или>, таким образом, избегая всего, что не содержит текста.
Мой пример не работает, это просто показать, где я добрался, и теперь я застрял.
Все это делает дать этот матч, поэтому я часть пути туда:
<condition name="gender" value="male"> <condition name="somethingelse" value="somevalue">Target string</condition>
Может кто-нибудь помочь, пожалуйста?
Если вы знаете, что на самом деле у вас есть XML, как вы пришли к выводу, что для него используется регулярное выражение? – mario
«Люди, вероятно, предложит использовать XML-парсер или что-то в этом роде, но я хочу сделать это с помощью регулярного выражения». Зачем? Это учебное упражнение? – shuttle87
Это XML да, он описывает алгоритм - если я использую синтаксический анализатор xml, я теряю часть данных, которые мне нужны. – Rog