Я пытаюсь проанализировать канал Atom на Twitter, но я столкнулся с этой странной проблемой. Я звоню preg_match_all
с этой регулярным выражением строкой:PHP preg_match_all() не захватывает подгруппы
"|<entry>.*<title>(.*)</title>.*<published>(.*)</published>.*</entry>|xsU"
Это соответствует всем записям в порядке, но захваченные подгруппы название/опубликовано не отображается в результатах (не массивы для захваченных подгрупп не будут созданы в результате объект).
Теперь к странной части, я стараюсь, чтобы захватить последний бит, а также:
"|<entry>.*<title>(.*)</title>.*<published>(.*)</published>(.*)</entry>|xsU"
А теперь отлов работает. Я получаю заголовок и опубликованную дату и большой кусок конечных данных, которые мне не нужны.
Я попытался добавить строку non-capture «?:» В последнюю подгруппу, но затем захват снова перестает работать alltogether.
Так как я могу захватить данные, которые я хочу, без необходимости захватывать большой кусок нежелательных данных в конце?
сообщение какой-то код, пожалуйста, – meagar
[Не разобрать XML/HTML с регулярным выражением] (http://www.codinghorror.com/blog/2009/11 /parsing-html-the-cthulhu-way.html) ... – ircmaxell