Задать вопрос
EGDFree
@EGDFree

Граница слова и символ +

Добрый день.

Псевдокод на Perl:
$t = "C++, Java; JavaScript, c++, java; Oracle. Perl - power.";
$t =~ s/\b\Qc++\E/!!!Perl!!!/ig;
print $t, "\n";


Замена работает отлично, но, если заменить шаблон на "\b\Qc++\E\b" (то есть добавить в конец якорь), то совпадений больше не находится.

Подскажите, пожалуйста, что я здесь не понимаю.
  • Вопрос задан
  • 2926 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
$t = "C++, Java; JavaScript, c++1, java; Oracle. Perl - power.";
$t =~ s/\b\Qc++\E(?=\W)/!!!Perl!!!/ig;
print $t, "\n";


\b - граница слова
\w - алфавитно-цифровой символ (любая буква, цифра или символ подчеркивания)
\W - любой символ, кроме букв, цифр и символа подчеркивания

perl считает границей слова точку, расположенную между \w и \W, независимо от того, в каком порядке следуют эти символы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы