Lexikon
вот тут соображаю, как бы правильно сделать.
Есть к примеру текст в котором нужно заменить слово/словосочетание, но иногда то слово/словосочетание которое нужно заменить является частью другого слова.
Так к примеру в тексте есть "teenager", а по условию нужно заменить "teen" на "girl", если заменять просто как есть то получиться "girlager"
Ну или нужно заменить "her pussy" на "her cunt", а в тексте встречается "anot
her pussy" т.е. может захватывать совершенно ненужные части
Решил выйти из этого положения добавляя к слову поиска пробулы в начале и в конце.
Но тут сново столкнулся с проблемой, текст может стоять: в начале строки, в конце, и перед знаками препинания.
Подкинте идею пожалуйста, как быть в такой ситуации, заменять только то что нужно и не портя другие слова и словосочетания.
Размышлял на тему делать это с помощью регулярки, т.е. если перед или после слова поиска стоит буквенный символ, замену не производить.
Alexandur
Lexikon писал:
Размышлял на тему делать это с помощью регулярки, т.е. если перед или после слова поиска стоит буквенный символ, замену не производить.
Или если стоит пробел, запятая, точка, воскл или вопр знак. Правда, в этом случае, предложения должны быть нормально составлены.
Lexikon
вот что вышло:
<?php
$subject = "PHP is the website scripting language of choice.";
$pattern = "website";
$replacement = "webpage";
$result = preg_replace("/\b$pattern\b/i", $replacement, $subject);
echo $result;
?>
то что нужно
Отдельное спасибо
Emperor
Lexikon
от чего ушел в прошлых топиках вернулся сново:
<?php
$subject = "PHP scripting language perfect for creating Websites.";
$pattern = Array(
"/\bperfect\b/i",
"/\bwebsites\b/i"
);
$replacement = Array(
"best",
"webpages"
);
$result = preg_replace($pattern, $replacement, $subject);
echo $result;
?>
на выходе этого скрипта получаю текст:
PHP scripting language best for creating webpages.
но сново возникла проблема, как при этом всём сохранить регистр букв.
т.е. чтоб на выходе было:
PHP scripting language best for creating Webpages.
Или как сделать чтоб каждое предложение после (.?!) начиналось с большой буквы?