重複の可能性:
PHP で HTML を解析および処理する方法は?
説明が特定の基準を満たしているかどうかに基づいて、一部の href をリンクの説明に置き換えて、HTML のブロックを解析する必要があります。
特定の文字列を識別するために使用している正規表現は、アプリケーションの他の場所で使用されています。
$regex = "/\b[FfGg][\.][\s][0-9]{1,4}\b/";
preg_match_all($regex, $html, $matches, PREG_SET_ORDER);
href の説明を抽出するための出発点として、次の SO の質問を使用しています。
アイデアは、「FfGg.xxxx」タイプの識別子を持つリンクを変換し、残りはそのままにしておくことです (つまり、Google リンク)。
私がこれまでに持っているものは次のとおりです。
$html = 'Ten reports <a href="http://google.com">Google!</a> on 14 mice with ABCD
show that low plasma BCAA, particularly ABC and to a lesser extent DEF, can result in
severe but reversible epithelial damage to the skin, eye and gastrointestinal tract.
</li><li>Symptoms were reported in conjunction with low plasma ABC levels in 9 case
reports. In two case reports, ABC levels were between 1.9 and 48 µmol/L (<a
href="/docpage.php?obscure==100" target="F.100">F.100</a>, <a
href="/docpage.php?obscure==68" target="F.68">F.68</a>, <a href="/docpage.php?obscure==67"
target="F.67">F.67</a>, <a href="/docpage.php?obscure==71" target="F.71">F.71</a>, <a
href="/docpage.php?obscure==122" target="F.122">F.122</a>, <a
href="/docpage.php?obscure==92" target="F.92">F.92</a>, <a href="/docpage.php?obscure==96"
target="F.96">F.96</a>);';
これにより、Google を含むすべてのリンクが変換されます。
$html = preg_replace("/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/i", "$2", $html);
これは空白の HTML 文字列を返します。
$html = preg_replace("/<a.*?href=\"(.*?)\".*?>[FfGg][\.][\s][0-9]{1,4}<\/a>/i", "$2", $html);
問題は、上記の 2 番目の (機能しない) 例にこの正規表現を埋め込む方法にあると思います。
[FfGg][\.][\s][0-9]{1,4}
上記の preg_replace の例で見つかった FfGg 式を HTML に埋め込む正しい方法は何ですか?