Articles of preg match all

Использование регулярного выражения subpattern to вместо использования регулярного выражения 2 раза в php

Мне интересно, если его можно сделать, включая subpattern (child pattern) в другой шаблон, который позволит мне преобразовать эти 2 preg_match и preg_match_all в один preg_match / preg_match_all. <?php $data = 'office phones tel1 6665555998 tel2 555666888 tel3 555688855 home phones tel1 555222555 tel2 555222444 tel3 555666888'; preg_match('/phones(.*)home phones/', $data, $matches); // 1st operation preg_match_all('/[0-9]{4,12}/', $matches[1], […]

Как очистить preg_match_all от пустых значений массива

Я использую preg_match_all для создания массива для коротких кодов, и он отлично работает, но он также возвращает массивы с пустыми значениями, см. Здесь, пожалуйста, https://eval.in/141437 Используя эту совпадение, я уверен, что это лишние пустые массивы #\[link(.*?)link\=\"(.*?)\"(.*?)text\=\"(.*?)\"\]#e Как я могу их очистить. Я попробовал array_filter, но это не сработало. Спасибо!

PHP regexp анализирует HTML

Мое регулярное выражение: <([a-zA-Z0-9]+)>[\na-zA-Z0-9]*<\/\1+> моя строка: <div> <f> </f> </div> результат: array(2 0 => array(1 0 => <f> </f> ) 1 => array(1 0 => f ) ) почему он захватывает <f></f> и игнорирует первый <div> ?

Извлечение содержимого из каждого первого ТД в таблицу

У меня есть HTML, который выглядит так: <tr class="row-even"> <td align="center">abcde</td> <td align="center"><a href="deluserconfirm.html?user=abcde"><img src="../images/delete_x.gif" alt="Delete User" border="none" /></a></td> </tr> <tr class="row-odd"> <td align="center">efgh</td> <td align="center"><a href="deluserconfirm.html?user=efgh"><img src="../images/delete_x.gif" alt="Delete User" border="none" /></a></td> </tr> <tr class="row-even"> <td align="center">ijkl</td> <td align="center"><a href="deluserconfirm.html?user=ijkl"><img src="../images/delete_x.gif" alt="Delete User" border="none" /></a></td> </tr> И мне нужно получить значения, efgh , efgh и […]

PHP RegEx не получит знак вопроса

Я пытаюсь сопоставить URL-адреса в строке, используя функцию PHP «preg_match_all». Он отлично работает, за исключением того, что он не будет соответствовать URL-адресам с вопросительными знаками. Например, это будет соответствовать штрафу: http://espn.com/mlb Но это не будет соответствовать: http://espn.com/mlb?player=71 Вот регулярное выражение, которое я использую, $regexUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/"; Я не могу понять, почему знак вопроса не подхвачен […]

preg_match, чтобы найти слово, которое заканчивается определенным символом

Я пытаюсь сделать небольшую программу, которая ищет в таймере (с этим форматом 00d 00h 00m 00s) и возвращает дни в одну переменную, часы в другую и т. Д. Это мой код: $time1 = "Left: 11d 21h 50m 06s <\/div>" preg_match_all("/ .*d/i", $time1, $timematch); // Day $time1day = $timematch[1]; // Saves to variable preg_match_all("/ .*h/i", $time1, […]

PHP preg_match_all + str_replace

Мне нужно найти способ заменить все <p> во всех <blockquote> перед <hr />. Вот пример html: <p>2012/01/03</p> <blockquote> <h4>File name</h4> <p>Good Game</p> </blockquote> <blockquote><p>Laurie Ipsumam</p></blockquote> <h4>Some title</h4> <hr /> <p>Lorem Ipsum</p> <blockquote><p>Laurel Ipsucandescent</p></blockquote> Вот что я получил: $pieces = explode("<hr", $theHTML, 2); $blocks = preg_match_all('/<blockquote>(.*?)<\/blockquote>/s', $pieces[0], $blockmatch); if ($blocks) { $t1=$blockmatch[1]; for ($j=0;$j<$blocks;$j++) { $paragraphs […]

Regex PRCE PHP preg_match_all: Как удалить пустые узлы в массиве совпадений?

$text = 'Lorem Ipsum'; $re = '/(?<AA>Any)|(?<BB>Lorem)/ui'; $nMatches = preg_match_all($re, $text, $aMatches); $aMatches будет содержать следующее: Array ( [0] => Array ( [0] => Lorem ) [AA] => Array ( // do not include to result matches array [0] => // because have not match for this part ) [1] => Array ( [0] => […]

php preg_match_all убивает страницу по неизвестной причине

Я пытаюсь проверить кучу текста и проверить, есть ли в нем электронные письма … поэтому я использую следующий код: if (preg_match_all("/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\\.([a-zA-Z])+([a-zA-Z])+/", $str, $matches)){ } это будет работать для TEXT_A в но когда я зашел в страницу2 и попытаюсь снова проверить TEXT_A, он убьет страницу с ошибкой «Ошибка загрузки страницы» … если я удалю эту проверку, […]

php preg соответствует всем, все `p`

<?php $str= <<<ETO <p>one two</p> <p>three</p> ETO; preg_match_all('/<p>(.*?)<\/p>/',$str,$r); print_r($r); ?> Я изучаю preg_match_all . Я хочу получить все p из одной статьи. но мой код получает только второй p . как изменить, чтобы я мог получить первый p . Благодарю.