1
<font size="+1"><font size="+2" color="green"><b>1.</b> 
</font><b>If no head injury is too trivial to be neglected, then:</b></font>

PHP を使用してpreg_match、またはpreg_match_all「頭部外傷が無視できないほど些細なことではない場合:」というテキストを取得したい

これどうやってするの?

4

3 に答える 3

2

コード :

<?php

$str = '<font size="+1"><font size="+2" color="green"><b>1.</b></font><b>If no head injury is too trivial to be neglected, then:</b></font>';
$pattern = "/font><b>(.+)<\/b>/";
preg_match($pattern,$str,$matches);

echo $matches[1];

?>

出力:

軽微で無視できない頭部外傷がない場合、次のようになります。

于 2012-04-07T11:08:42.407 に答える
0

キャプチャする文字列を選択する条件がわからないのですが、なぜ1.キャプチャされないのに、2。文字列はキャプチャされるのでしょうか。あなたが私が推測することしかできないと説明しない限り、式として:

/<\w+(?:\s+\w+=(?:(?:"[^"]*")|(?:'[^']*')))*\s*>([^<]+)</\w+>/g

<p>text<br /></p>テキストノードのみを含むすべてのhtmlタグに一致します(整形式ではないため、xhtmlの場合に当てはまります...)。

そのため<p>text</p><br>text2</br>、一致し、その結果、テキストはキャプチャグループ1になります。

<\w+(?:\s+\w+=(?:(?:"[^"]*")|(?:'[^']*')))*\s*>すべての開始xhtmlタグをキャプチャします

([^<]+)<を除くすべてのcahrをキャッチし、キャプチャグループに入れます

</\w+>ついにクロージングタグをキャッチ...

これgは、式が複数の結果をキャッチできるようにするためのグローバルフラグです。

これで頑張ってください、あなたが何か違うものを必要とするならば、もう少し正確にしてください...

于 2012-04-07T11:27:54.010 に答える
-1

パターンは次のようになります。

/<\s*b\s*>(.+)<\s*\/b\s*>/
于 2012-04-07T10:59:55.827 に答える