Вот мой шаблон: /(?:^|\W)(the)(?:$|\W) /i
Этот шаблон будет соответствовать любому 'the', если он находится в начале строки, конце строки или в середине. Однако он не будет соответствовать буквам «t», «h» и «e», если они встречаются подряд в таких словах, как «там»< /p>
Все в порядке, пока мы не заменяем часть preg_replace
Код: Выделить всё
// All you need to know about $message is that it is a string of user input
// The content passed in will be sentences like "The fish jumped over the bridge"
// The resulting replacement should be "foo fish jumped over foo bridge"
// The current result would be "foofish jumped overfoobridge"
$message = "The fish jumped over the bridge"; // Would usually be user input, or from POST
$secretMsg = preg_replace('/(?:^|\W)(the)(?:$|\W)/i', 'foo', $message);
echo $secretMsg; // Should be "foo fish jumped over foo bridge"
Как видно из моего текущего шаблона, я поигрался с группами без захвата и захвата. Я также поигрался с обратными ссылками, но все равно безуспешно.
На этом этапе я в растерянности и нуждаюсь в совете от кого-то, кто понимает регулярные выражения больше, чем я. Я также хочу отметить, что я понимаю, что в этом выражении будут сопоставляться пробелы, и Я ХОЧУ, чтобы они сопоставлялись, но НЕ ХОЧУ, чтобы они были заменены.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ncludes-it
Мобильная версия