Как вы используете Notepad ++ regex pipe | для строк длиной более одного символа?

StackOverflow https://stackoverflow.com/questions/820740

  •  03-07-2019
  •  | 
  •  

Вопрос

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

abc перешел к def.

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

  • abc|определение
  • [abc|определение]
  • (abc)|(def)
  • (abc|def)

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

Это было полезно?

Решение

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

Другие советы

В "длиннее одного символа" нет ничего особенного, Notepad ++ не поддерживает символ | в регулярном выражении.Даже "a | d" не работает.Видишь страница справки по регулярным выражениям. Версия 6.1.1 Notepad ++ теперь поддерживает |.

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

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

Как и ваш | в [a|d] это означает , что [a|d] описывает любого из персонажей a, | или d и не только a или d Нравится a|d делает.

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

`ss abc,def filename`

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

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

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

abc|определение

(abc)|(def)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top