Вот пример строки с моим регулярным выражением и кодом:
$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>"; ?>
?