preg_replace PHP - PullRequest
       9

preg_replace PHP

0 голосов
/ 03 августа 2009

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

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

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

Т.е.. «Меня встречает смег» становится «ххх встречает смег»

Чего я НЕ хочу, так это:

«Меня встречает смег» становится «xxx xxxets sxxg»

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

Пожалуйста, помогите

Оливер.

Ответы [ 5 ]

4 голосов
/ 03 августа 2009
$replaced = preg_replace('/\bme\b/i','xxx',$phrase);
2 голосов
/ 03 августа 2009

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

$output = preg_replace( "/\\bme\\b/", 'xxx', $input );
1 голос
/ 03 августа 2009

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

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

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

$str = preg_replace('/\bme\b/i', 'xx', $str);
1 голос
/ 03 августа 2009

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

0 голосов
/ 03 августа 2009

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

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

\b - это ограничение слова , как определено в справочнике PCRE .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...