2009-08-03 2 views
0

Я знаю, что это действительно легко, и я сделал это миллион раз сам; но уже поздно, и у меня мозговой кризис.preg_replace PHP

Я пытаюсь сопоставить и заменить целые слова, а не каждый случай.

Итак, я хочу, чтобы заменить каждое вхождение слова «мне» и заменить его «ххх»

Ie. «Me соответствует Smeg» становится «ххх встречает Smeg»

То, что я НЕ хочу это:

«Me встречает Smeg» становится «ххх xxxets sxxg»

Я знаю, что это preg_match, но я просто не могу» t помните соответствие шаблонов для целых слов.

Помогите

Oliver.

ответ

0

Попробуйте следующее регулярное выражение:

$replaced = preg_replace('/\bme\b/i', 'xxx', $subject); 

\b является слово границы, как определено в PCRE Reference.

1

\b matches a word boundary, поэтому что-то вроде /\bMe\b/ (или /\bme\b/i для нечувствительности к регистру) должно дать вам регулярное выражение, которое вы желаете!

1

Вы используете границу слова \b.

$str = preg_replace('/\bMe\b/', 'xx', $str); 

Для нечувствительности к регистру, используйте модификатор i:

$str = preg_replace('/\bme\b/i', 'xx', $str); 
2

Слово граничные символы

$output = preg_replace("/\\bme\\b/", 'xxx', $input); 
4
$replaced = preg_replace('/\bme\b/i','xxx',$phrase);