Попытка выяснить регулярное выражение для использования в Notepad++, где я могу искать текст ниже (в качестве примера) и находить результаты по порядку.

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

{ USERECOVERDB 1 }

protocol to_nuance_orm_p5 {
{ AUTOSTART 1 }
{ DELAYCONNECT 0 }
{ HOST 198.92.118.168 }
{ IPV4_V6_DUAL 0 }
{ PDLTYPE tcp-client }
{ PORT 9014 }
{ PRIVATE_KEY {} }

Желаемый результат:

protocol to_nuance_orm_p5
HOST 198.92.118.168
PORT 9014

2 ответа2

1

Следующее регулярное выражение должно работать:

protocol [^ ]+|HOST \d+\.\d+\.\d+\.\d+|PORT \d+

Я использую Sublime Text для тестирования, но он должен работать и в Notepad++.

Вот как это работает: он состоит из трех частей:

  • protocol [^ ]+
  • HOST \d+\.\d+\.\d+\.\d+
  • PORT \d+

| Символ означает, что любая из этих частей может быть сопоставлена.

Первая часть: protocol [^ ]+

protocol (включая пробел после l) просто совпадает со словом protocol и следующим пробелом. [^ ] соответствует одному непробельному символу, а + означает совпадение с одним или несколькими предшествующими символами, поэтому [^ ]+ будет соответствовать одному или нескольким непробельным символам.

Вторая часть: HOST \d+\.\d+\.\d+\.\d+

HOST соответствует тексту, как в первой части. Тогда есть \d который соответствует одной цифре и + который имеет то же значение, что и выше. \. будет соответствовать обычным точкам. В отличие от букв, точка должна начинаться с обратной косой черты, поскольку она имеет особое значение в регулярных выражениях.

Третья часть даже проще, чем вторая, поэтому я не думаю, что объяснения необходимы.

Если вы хотите узнать больше о регулярных выражениях, этот урок довольно хорош, и вот хороший тестер / отладчик регулярных выражений.

0

Если вы просто хотите найти весь текст в формате:

** TEXT ** 

попробуй это:

\*\*.*\*\*

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .