本帖最後由 snipersheep 於 2013-08-01 15:52:47 編輯
$str = '內容A內容B'
請問一下,用正則分別取出 內容A 跟 內容B 正則要怎樣寫呢?
註:內容A,內容B 中間會有分行符號。
回複討論(解決方案)
你要得到的事內容A和內容B呢,還是 id="test_0"的text和 id="test_1"的內容呢?
內容A 與 內容B
跟ID無關。不是JS。是PHP取資料。
$subject = ' you dead!hellojames shit!hi
';$pattern = '/這裡正則如何寫/';preg_match($pattern, $subject, $matches);print_r($matches);$pattern_1 = '/這裡正則如何寫/';preg_match($pattern_1, $subject, $matches);print_r($matches);分別取到結果如下:資料一:you dead!hellojames資料二:shit!hi
$str = '內容A內容B';
preg_match_all('/(.*?)<\/div>/i',$str,$match);
echo $match[2][0];//內容A
echo $match[2][1];//內容B
默默收藏
preg_match_all('/(.*?)<\/div>/is',$subject,$match);
var_dump($match);
preg_match_all('/(.*?)<\/div>/is',$subject,$match);
var_dump($match);
好像有點問題。不是很准。
array(3) { [0]=> array(2) { [0]=> string(86) " you dead!hello" [1]=> string(80) "shit!hi" } [1]=> array(2) { [0]=> string(12) " id="test_0"" [1]=> string(12) " id="test_1"" } [2]=> array(2) { [0]=> string(45) " you dead!hello" [1]=> string(39) "shit!hi" }}
少了〈/div〉
preg_match_all('/(\s*(?:\s*)*)<\/div>/us',$subject,$match);echo $match[0][0];echo '';echo $match[0][1];
james shit! hi
';preg_match_all('/]+>(([^<]*|<(?!div)|(?R))+)<\/div>/us',$subject,$match);echo $match[0][0];echo '';echo $match[0][1];
james shit! hi
';preg_match_all('/]+>(([^<]*|<(?!div)|(?R))+)<\/div>/us',$subject,$match);echo $match[0][0];echo '';echo $match[0][1]; 膜拜大神!