2017-09-03 8 views
1

()の間のコンテンツをPHPで以下のreg式を使用して削除しようとしています。私のコードはHTMLタグ内のコンテンツも削除しています。どうすればそれ以上来ることができますか?中括弧内のコンテンツの正規表現をHTMLの外に適用する

入力 - 説明(詩)は通常の説明出力 - 期待

に構築さ<a href="/wiki/Statement_(logic)" title="Statement (logic)">statements</a>のセットです通常、私は説明をgot-

出力に構築さ<a href="/wiki/Statement_(logic)" title="Statement (logic)">statements</a>の集合であるがのセットですpreg_replace('/\(([^()]*+|(?R))*\)\s*/', ' ', $string);

+1

コードを入力してください。具体的にはあなたの入力、あなたが持っている出力、そして望みの出力。 –

+0

編集を中止するのをやめてください! –

+0

こんにちはロバート、私は私の質問を変更しました。 –

答えて

0

この方法は、あなたが唯一のを失格するために探していると仮定し - 通常

私のコードがあるに構築は、カッコ内の部分文字列削除プロセスのタグです。

パターン:~<a.*?</a>(*SKIP)(*FAIL)| *\([^()]*\) *~ は交換してください: Regex Demo

あなた$stringは、任意の/すべてのHTMLタグを含めることができる場合、あなたはパターンを少し緩める必要があります。

パターン:~<(\S+).*?</\1>(*SKIP)(*FAIL)| *\([^()]*\) *~ は交換してください: Regex Demo

*私は、これは新しいラインを維持し、文字列に意図した構造を維持することである代わりに\s(リテラルスペース)に一致しています私のパターンで注意してください。

(*SKIP)(*FAIL)は、あらかじめ一致した不適格を無効にするように機能します。

関連する問題