Как вы используете Notepad ++ regex pipe | для строк длиннее одного символа? - PullRequest
19 голосов
/ 04 мая 2009

Я пытаюсь получить блокнот ++ для регулярного выражения найти все экземпляры "abc" и "def" в следующем предложении:

Азбука пошла в оборону.

Кажется, что ни один из следующих синтаксисов не работает:

  • а | Защита
  • [а | Защита]
  • (а) | (DEF)
  • (а | DEF)

ПРИМЕЧАНИЕ: «[a | d]» соответствует любому экземпляру «a» или «d», когда я тестировал

Ответы [ 5 ]

24 голосов
/ 04 мая 2009

Ничего особенного в «длиннее одного символа» нет, Notepad ++ не поддерживает | символ в регулярном выражении Даже «а | д» не работает. См. страницу помощи regex . Версия 6.1.1 Notepad ++ теперь поддерживает |.

Я бы предложил использовать редактор с правильной реализацией регулярных выражений, такой как gvim или UltraEdit .

11 голосов
/ 29 марта 2012

Обновление до Notepad ++ v6. Из журнала изменений: «Поддерживаются PCRE (регулярные выражения, совместимые с Perl)». Я подтвердил, что | работает в поиске регулярных выражений при использовании Notepad ++ v6.

1 голос
/ 08 января 2013

| должен работать сейчас.
Благодаря усовершенствованию Regex в Notepad ++

а | Защита

(а) | (DEF)

1 голос
/ 10 марта 2011

У меня была такая же проблема, как я приземлился здесь. Так как это недостаток notepad ++, мы можем обойтись с помощью Powershell. В вашем случае просто запустите строку выбора:

`ss abc,def filename`

Если в Unix у вас есть другие инструменты, например, grep.

Я понимаю, что вы хотели найти решение для блокнота ++, и я тоже, но иногда вам приходится обходиться.

1 голос
/ 04 мая 2009

Внутри объявления набора символов ([…]) только символы \, ] и - являются специальными символами со специальными функциями экранирования следующего символа, закрытия объявления набора символов и маркировки диапазона символов. (только если не написано в начале или конце), соответственно. Любой другой символ интерпретируется как простой символ.

То же самое относится к | в [a|d], что означает, что [a|d] описывает любой из символов a, | или d, а не просто a или d, как a|d .

...