0

次のようなテキストがあります。

Word word word <a href=google.com>word word word</a> word word word

HTMLタグで囲まれていないスペースの位置が必要です-以下に下線が引かれたスペースの位置:

Word_word_word_<a href=google.com>word word word</a>_word_word_word

(で) どの正規表現を使用すればよいpreg_match()ですか?

4

2 に答える 2

1

かなり単純なアプローチ:

$test = 'Word word word <a href=google.com>word word word</a> word word word';
$t = preg_replace('#\s+((?=.*<a)|(?!.*</a>))#', '_', $test);
var_dump($t); 
// string 'Word_word_word_<a href=google.com>word word word</a>_word_word_word'

明らかに、複数のhrefが埋め込まれている可能性のある文字列では機能しません。これらの場合、別のアプローチを提案します。1)文字列を<a href...>...</a>パーツで分割し、2)リンクされていないパーツのすべての空白を置き換えます。3)文字列を再構築します。

于 2012-09-03T10:28:39.587 に答える
0

str_replace関数を使用します。

$string = "Sample Sample Sample Sample Sample";
$name = str_replace(' ', '_', $string );
echo $name;
于 2012-09-03T10:22:16.770 に答える