PHPを使用して完全な単語だけを置き換えたい
例:私が持っている場合
$text = "Hello hellol hello, Helloz";
と私は使用します
$newtext = str_replace("Hello",'NEW',$text);
新しいテキストは次のようになります
NEW hello1こんにちは、Helloz
PHPは
NEW hello1こんにちは、NEWz
ありがとう。
PHPを使用して完全な単語だけを置き換えたい
例:私が持っている場合
$text = "Hello hellol hello, Helloz";
と私は使用します
$newtext = str_replace("Hello",'NEW',$text);
新しいテキストは次のようになります
NEW hello1こんにちは、Helloz
PHPは
NEW hello1こんにちは、NEWz
ありがとう。
正規表現を使用したい。は\b
単語の境界に一致します。
$text = preg_replace('/\bHello\b/', 'NEW', $text);
UTF-8テキストが含まれている場合$text
は、Unicode修飾子「u」を追加して、ラテン文字以外の文字が単語の境界として誤って解釈されないようにする必要があります。
$text = preg_replace('/\bHello\b/u', 'NEW', $text);
文字列内の複数の単語がこれに置き換えられました
$String = 'Team Members are committed to delivering quality service for all buyers and sellers.';
echo $String;
echo "<br>";
$String = preg_replace(array('/\bTeam\b/','/\bfor\b/','/\ball\b/'),array('Our','to','both'),$String);
echo $String;
Result: Our Members are committed to delivering quality service to both buyers and sellers.
配列置換リスト:置換文字列が相互に置換されている場合は、が必要preg_replace_callback
です。
$pairs = ["one"=>"two", "two"=>"three", "three"=>"one"];
$r = preg_replace_callback(
"/\w+/", # only match whole words
function($m) use ($pairs) {
if (isset($pairs[$m[0]])) { # optional: strtolower
return $pairs[$m[0]];
}
else {
return $m[0]; # keep unreplaced
}
},
$source
);
明らかに/効率のため/\w+/
にキーリストに置き換えることができます/\b(one|two|three)\b/i
。
You can also use T-Regx library, that quotes $
or \
characters while replacing
<?php
$text = pattern('\bHello\b')->replace($text)->all()->with('NEW');