2016-11-15 4 views
2

Использование Notepad ++ и заменить функцию, я попытался добавить символ «+» или «[» перед каждым словом моего списка.Regular Expression - Добавить символ перед/после каждого слова

Пример списка:

  • синий автомобиль
  • красный автомобиль большой
  • красный автомобиль маленький
  • зеленый автомобиль большой
  • зеленый автомобиль маленький

Я ищу для следующего результата:

  • + синий + автомобиль
  • + красный + автомобиль + маленький
  • + красный + автомобиль + большой
  • .. и т.д.

Я знаю, как добавить символ Befor каждой строки. .. но я не могу найти способ добавить его перед каждое слово без замены "синий" до "+ синий".

+2

Что это должен делать с 'php'? – arkascha

+0

Что делать php в этом? (давая мое понимание вашей проблемы: заменяя слова, используя блокнот RegExp) – Guiroux

+1

Попробуйте '\ b \ w + \ b' заменить' + $ & ' –

ответ

3

Поперечное решение платформы должно быть

Поиск: \b\w+\b (или \b[[:alpha:]]+\b)
Заменить: +$&

Поиск модели детали:

  • \b - границы ведущего слова
  • \w+ - 1 или более слов символов (если [[:alpha:]]+ используется, 1+ буквы)
  • \b - замыкающая слово граница

Запасные детали: + является буквальным плюс, и $& является обратная ссылка на весь матч.

Смотрите скриншот:

enter image description here

+1

Благодарим вас за четкое объяснение ... У вас еще есть работа по управлению регулярным выражением! – B4b4j1

+1

Вы имеете в виду «учиться» :)? Обратите внимание, что большинству онлайн-тестировщиков регулярных выражений следует доверять в определенной степени, поскольку они обычно не поддерживают способ обработки регулярных выражений АЭС. Установите флажок [Boost regex syntax] (http://www.boost.org/doc/libs/1_62_0/libs/regex/doc/html/boost_regex/syntax.html) и всегда проверяйте в Notepad ++. –

+0

Да, обучение - это ключ! Я все чаще использую regex для работы с большим списком слов и таблицами. Но мне не хватает времени, чтобы углубить все предметы. Thx снова за помощью! – B4b4j1

1

(см рисунок ниже)

  • открыть диалог поиска/замены (Ctrt + H)
  • в Find ввода, введите это регулярное выражение: (\b\w), что означает "граница слова, за которым следует буква"
  • в поле ввода Replace with, введите эту замену: +\1, что означает «положить знак +, за которым следует соответствие между скобками регулярных выражений»
  • нажмите Show advanced options флажок
  • нажмите кнопку Search with regular expressions радио
  • затем нажмите Replace кнопку столько раз, сколько вы хотите, или использовать Replace all для раз

enter image description here

EDIT: для Windows, в значительной степени то же самое (см. диалог поиска/замены http://sqlblog.com/blogs/jamie_thomson/image_1AFC2B61.png). Параметр «Регулярное выражение» находится в левом нижнем углу

+0

да, я попробовал, и работает для меня. См. Снимок экрана. Вы задали все параметры регулярного выражения так же, как отображаемый диалог? – arhak

+0

Да, это NPP, только в Debian – arhak

+0

ОК, '\ b', похоже, не работает прямо в Windows NPP. – AbraCadaver