タグのネストされたコンテンツを抽出しています。ローカル マシン (WAMP) PHP バージョン 5.3.8、マルチバイト正規表現 (鬼車) バージョン - 4.7.1 で完全に動作する正規表現を作成しました。
$tagname = 'mytag';
$pattern = "@<$tagname(?:\s.*?!/)?>(.*?)</$tagname\s*>@s";
しかし、同じ正規表現は、PHP バージョン 5.2.11、マルチバイト正規表現 (鬼車) バージョン 4.4.4、およびマルチバイト正規表現 (鬼車) バックトラック チェック = オンの構成の私のライブ マシンでは正しく機能しません。
この正規表現を変更して、ライブ サイトで動作するようにしてください。
この正規表現は一致<mytag></mytag>
し、一致しません<mytag />
。
更新: ご提案とご回答ありがとうございます。
その正規表現を少し更新したところ、うまくいきました。内部コンテンツ (ネストされたタグとテキスト) を取得したい場合はいつでも、この正規表現を使用できます。タグの配置や属性の数に関係なく。