2011-04-04 39 views
2

這裏後樣品字符串我正則表達式和代碼:PHP正則表達式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>"; 

我想後「到每一行匹配---------- '上面的模式只返回第一行(口服葡萄糖)。我可以重複'\ r \ n(。+)'部分並返回另一行,但不知道將會有多少行。

謝謝!

回答

2

你可以做到這一點沒有正則表達式:

$data = substr($str, strpos($str, '----------') + 10); 
$matches = explode("\r\n", $data); 
+0

你的意思是解決一個沒有REGEX的字符串問題!>!>!>!?!大聲笑,這很有趣,我最近一直在使用REGEX,我甚至沒有考慮使用PHP函數。謝謝。 – jreed121 2011-04-04 23:39:08

1
<?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>"; 

?> 

相關問題