0

3つの文字列(ここにHTMLコードがあります。HTMLパーサーを使用するとは言わないでください。正規表現を使用する必要があります):

</div><img src="http://www.example.com/nano.png" alt="NANOTECH" />
</div><img src="http://www.example.com/internet.gif" alt="INTERNET" />
</div>

そこに3本の線を撮りたいです。だからこれを試してみました:(PHP preg_match

<\/div>.[<img src="http:\/\/www.example.com\/.*?\/>]+

しかし、それはただ</div><img src="http://www.example.com/

どうしたの?

4

4 に答える 4

1

正規表現パターンでpreg_match_allを使用する

/^<\/div>(<img src="http:\/{2}www.example.com[^>]*>)?$/m

または正規表現パターンでpreg_matchを使用します

/(^<\/div>(<img src="http:\/{2}www.example.com[^>]*>)?$(?:\n?|\Z))+/m
于 2012-11-10T20:44:49.963 に答える
1

えーと、やってみませんか

<\/div><img src="http:\/\/www.example.com\/.*?\/>

失敗する理由は、角かっこ[]を使用して一致する文字のリストを定義してから、これらの文字のいずれかに1回以上一致するように正規表現に指示するためです(+)。iも含まれていないので、試合はそれぞれとnの先頭で停止します。internet.gifnano.png

于 2012-11-10T20:42:39.927 に答える
0
/(<\/div>(?:<img\w*src="http:\/\/www\.example\.com\/[^"]+?"[^>]*?>)?)/m

また、preg_match_allを使用して、1つだけでなく、すべての一致を検索します。

于 2012-11-10T20:47:36.527 に答える
0

角かっこではなく、丸かっこが必要です。角括弧は文字クラスを示し、括弧内の文字の任意の1文字と一致します。また、例ではとの間にギャップがないため、/div>との間にドットは必要ありません。<img

于 2012-11-10T20:41:32.353 に答える