0

だから私はこのような文字列を持っています<span>hey</span>/<span>bye</span>/<span>why</span>/。HTML タグ以外のすべてのs をpreg_replaceに置き換えるにはどうすればよいですか?/::

4

1 に答える 1

0

これには否定的な後読みを使用することを検討します。

$pattern = '#(?<!<)/#';
$replacement = '::';
$result = preg_replace($pattern, $replacement, $input);

/これの要点は、前の文字がない場合にのみ置換することです<

もちろん、さらに一歩進んで、>自己終了タグの場合のように、次の文字が含まれていないことを確認する必要がある場合があります。その場合、パターンが次のようになるように、否定先読みを追加することもできます。

$pattern = '#(?<!<)/(?!>)#';
于 2013-06-25T18:18:09.267 に答える