0

説明にあるトピックを関連するトピックにリンクしたい...ここでは同じことをするために preg_replace() を使用していますが、それを行うには正規表現パターンのフォーマットに助けが必要です....

私が直面している課題は次のとおりです。

1) 説明には、すべてのタイプの html タグを含めることができます

2)私の置換機能は、タグとタグの間にあるものを置き換えるべきではありません

3) 説明とともに存在するタグの属性を置き換えてはなりません...文字列 Style と Beauty があり、Style をトピックとしてリンクしたい場合のように..この場合、「style」属性をリンクしないでくださいタグの代わりに、「Style and Beauty」文字列からスタイルをリンクする必要があります

上記のクエリに関するあらゆる種類のヘルプをいただければ幸いです....

前もって感謝します...

4

2 に答える 2

1

DOMParser入力の形式に応じて、クラスまたはPHPで使用可能ないくつかのXML解析ライブラリの1つを使用します。

于 2012-11-23T12:08:42.853 に答える
0

私のコメントを詳しく説明すると、正規表現はステートフルまたは再帰的な解析には適していません。つまり、非常に高度な方法で一致できますが、再帰または状態を必要とするもの、特にツリーのようなものはできません。正規表現を使用して解析されます。一部の regex 方言 (Perl 正規表現など) は、後方参照や、正規表現を厳密な正規解析を超えて拡張するその他の構造を備えていますが、それらを使用しても、せいぜい面倒なことになります。

代わりに、正気のことを行います。入力に対して機能する DOM パーサー (PHP 独自の DOMDocument API など) を見つけて、結果の DOM ツリーで処理を行います。うまく機能するはずのアプローチは、DOM ツリーを再帰的にたどり、各ノードでそれがテキスト ノードかどうかを確認することです。そうである場合は、単純な検索と置換のロジックをその内容に適用します。または、XPath 式をスローしてテキスト ノードを提供し、それらを直接変更することもできます。または、適切な置換関数を XslProcessor にフックし、XSLT で置換を行うこともできます。これは、XSLT に精通している場合はかなり簡単ですが、そうでない場合は、DOM ウォーカーを実装する方がおそらく簡単です。

于 2012-11-23T15:23:55.653 に答える