Замена значений только по полному вхождению

iss

Client
Регистрация
08.09.2016
Сообщения
31
Благодарностей
6
Баллы
8
Добрый день.

Есть файл с большим текстом (код html, там есть русские слова для перевода на английский) беру его в переменную.

Далее я вычищаю все кроме русских слов и кладут его в список.

Далее идет цикл берем из списка ру текст (слово) перевожу через гугл апи.

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

В чем суть проблемы:

Так как в тексте могут встречать предлоги или короткие слова (к, на, от, в) и если они идут в списке первыми, то при их замене, заменяется не только слова полностью, а и буквы в других словах (то есть слово "отправить" в тексте, при переводе предлога "от" на выходе получаю FROMправить) Можно ли делать замену только для полного вхождения текста? Так как когда по списку доходит до перевода слова "отправить" скрипт переводит, но уже не видит слова отправить, так как его уже и нет фактически. Методы replace почитал, что-то не нашел там такого. Возможно и другая логика. Заранее спасибо, если у кого будут мысли.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 787
Благодарностей
2 453
Баллы
113
Отсортируйте список по количестве букв от большего к меньшему - таким образом сначала заменятся самые большие слова, и когда уже будут меняться "от" - их уже не будет в больших словах, так как они уже будут заменены ранее.

Либо заменяйте не просто "от", а оденьте в пробелы, например " от ", таким образом данная штука уже не может быть частью какого-то слова.
 
  • Спасибо
Реакции: iss

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
А каким образом сейчас замена идёт?
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)