Intereting Posts

PHP REGEX preg_match_all каждую строку после определенной строки

Вот пример строки с моим регулярным выражением и кодом:

$str = "Supp Fees: ---------- Oral Glucose Glucagon OXYGEN"; $ptn = "/----------(?:\r\n(.+))+/m"; preg_match_all($ptn,$str,$matches); echo"<pre>"; print_r($matches); echo"</pre>"; 

Я пытаюсь сопоставить каждую строку после «———-» вышеприведенный шаблон возвращает только первую строку (Oral Glucose). Я могу повторить часть '\ r \ n (. +)' И вернуть другую строку, но не известно, сколько строк будет.

Благодаря!

Вы можете сделать это без регулярного выражения:

 $data = substr($str, strpos($str, '----------') + 10); $matches = explode("\r\n", $data); 
 <?php $str = "Supp Fees: ---------- Oral Glucose Glucagon OXYGEN"; $str = explode('----------', $str); preg_match_all("/[^\r\n].*/", $str[1], $matches); echo"<pre>"; print_r($matches); echo"</pre>"; ?> 

?