Я пытаюсь захватить все вхождения <col width="NUMBER">
, используя preg_match_all
. Я получил его, чтобы работать без символов новой строки, но не могу с ними. Я использовал модификатор/s в конце, но не пошел.Новые строки с preg_match_all
Обратите внимание, сначала я мог вернуться только первое вхождение, но я обнаружил, что я мог бы использовать одно утверждение, которое дал мне все вхождения, используя (?=<col width=[^>](.*)>)
// without newlines in text, it finds 88 and 573
$text = '<table><colgroup><col width="88"><col width="573"></colgroup>';
preg_match_all('/<col width=[^>](.*)>(?=<col width=[^>](.*)>)/si', $text, $acell);
echo "<pre>";
var_dump($acell);
echo "</pre>";
// with newlines in text, can't find it.
$text = '<table>
<colgroup><col width="88">
<col width="573">
</colgroup>';
preg_match_all('/<col width=[^>](.*)>(?=<col width=[^>](.*)>)/si', $text, $acell);
echo "<pre>";
var_dump($acell);
echo "</pre>";
Есть newlines после '>', а не внутри. И утверждение просто работает случайно. – mario