2017-04-14 8 views
-1

タグ間のすべてのテキストをキャプチャしようとしています。PHP preg_match_allが期待どおりに動作しない

コード:ますprint_rの

$test = '<test>foo<tests> asdlkfjklas lkflsdakj <test>sdfsd<tests> asdlkaskl <test>235234<tests>'; 

$match = '/<test>(.*)<tests>/'; 

preg_match_all($match, $test, $nextLink); 

結果:

Array ([0] => Array ([0] => foo asdlkfjklas lkflsdakj sdfsd asdlkaskl 235234) [1] => Array ([0] => foo asdlkfjklas lkflsdakj sdfsd asdlkaskl 235234)) 
+0

使用非欲張り定量 '' – Barmar

+0

は結果がすべての間に ''すべての 'と' は含まれませんか(*。?)? – Barmar

+0

ブラウザがHTMLタグのように見えるものを隠しているため、[ソースを表示]を使用して実際に何が返されたかを確認します。 – Barmar

答えて

2

あなたの正規表現の構文は貪欲です。使用はfolowing:

$match = '/<test>(.*?)<tests>/'; 
+0

ありがとう!しかし、なぜ??申し訳ありませんが、正規表現で最高です! –

+0

@HunterSチュートリアルを読んで、貪欲に関するその部分に特別な注意を払う:http://www.regular-expressions.info/repeat.html – Barmar

関連する問題