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

Замена регулярным выражением в notepad++

есть огромный файл с массивом php, кодировка UTF-8 without BOM, notepad++ 5.9 unicode
содержимое такого характера:

$locale = Array(
'yes' => 'Да',
'no' => 'Нет'

);

задача заменить все слова кириллицей в кавычках на тоже самое, но с префиксом

казалось бы все просто, в идеале для однословной фразы хватило бы

'([а-яА-Я]+)' заменить на 'prefix\1'

но такая замена отрабатывает на 10% _совпадений_, как голову ни ломал не могу добиться результата, саму задачу выполнил в ручную, теперь просто интересно найти решение.

при этом, если искать по [а-яА-Я]+
выделяет то целое слово, то пол слова, то одну букву
  • Вопрос задан
  • 28852 просмотра
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 6
message
@message
Ну у меня вроде получилось, пробуйте такую регулярку…
Ответ написан
Palehin
@Palehin
Frontend
«при этом, если искать по [а-яА-Я]+ выделяет то целое слово, то пол слова, то одну букву»

А спец. символы начала (^) и конца ($) строки не помогают?
Ответ написан
Shedal
@Shedal
Это явно какой-то баг в движке регулярных выражений. Между прочим, я сейчас поигрался с заменами на совсем другом примере, и у меня, почему-то, даже вот такая регулярка ничего не находит в ангийском тексте: ([a-z][a-z])+. Хотел ей искать слова с четным количеством букв.

Юзайте TextPad. В нем регулярки более мощные (даже многострочные выражения работают). И багов таких нет.
Ответ написан
@max_rip
'([а-яА-Я ])+?'
Ответ написан
Nigrimmist
@Nigrimmist
Asp.net senior developer
Только что проверил у себя — и в правду, странно обработка регулярок себя ведёт.
Ответ написан
Комментировать
@whynot
У меня на sublimeText срабатывает нормально. Так, для информации, что npp уже давно не самый крутой и удобный
Ответ написан
Ваш ответ на вопрос

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

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