Here is the sample string with my regex and code:
這是我的正則表達式和代碼的示例字符串:
$str = "Supp Fees:
----------
Oral Glucose
Glucagon
OXYGEN";
$ptn = "/----------(?:\r\n(.+))+/m";
preg_match_all($ptn,$str,$matches);
echo"
";
print_r($matches);
echo"
";I'm trying to match every line after '----------' the pattern above only returns the first line (Oral Glucose). I can repeat the '\r\n(.+)' part and return another line but there is no telling how many lines there will be.
我試着匹配“-------”后的每一行,上面的模式只返回第一行(口服葡萄糖)。我可以重復“\r\n(.+)”部分並返回另一行,但不知道會有多少行。
Thanks!
謝謝!
2 个解决方案
#1
2
You could do this without regex:
你可以在沒有regex的情況下這樣做:
$data = substr($str, strpos($str, '----------') + 10);
$matches = explode("\r\n", $data);
#2
1
$str = "Supp Fees:
----------
Oral Glucose
Glucagon
OXYGEN";
$str = explode('----------', $str);
preg_match_all("/[^\r\n].*/", $str[1], $matches);
echo"
";
print_r($matches);
echo"
";?>
?
嗎?