Как выбрать несколько строк, содержащих определенное слово с регулярным выражением?

#regex

#регулярное выражение

Вопрос:

В Notepad у меня есть текст примерно такого вида:

https://i.stack.imgur.com/5nMhH.png

Я хочу выбрать все строки с регулярным выражением, которое содержит строку «EMPLOYEES» и заканчивается на «;»

Текст, который нужно выбрать:

 EMPLOYEE_ID                             NUMBER(6,0)         NOT NULL,
  FIRST_NAME                              VARCHAR2(20)        NULL,
  LAST_NAME                               VARCHAR2(25)        NOT NULL,
  EMAIL                                   VARCHAR2(25)        NOT NULL,
  PHONE_NUMBER                            VARCHAR2(20)        NULL,
  HIRE_DATE                               DATE                NOT NULL,
  JOB_ID                                  VARCHAR2(10)        NOT NULL,
  SALARY                                  NUMBER(8,2)         NULL,
  COMMISSION_PCT                          NUMBER(2,2)         NULL,
  MANAGER_ID                              NUMBER(6,0)         NULL,
  DEPARTMENT_ID                           NUMBER(4,0)         NULL);

COMMENT ON TABLE EMPLOYEES IS 
'employees table. Contains 107 rows. References with departments, 
jobs, job_history tables. Contains a self reference.';
  

Это работает, когда есть только одна строка, например:

https://i.stack.imgur.com/vmwYO.png

…но я хочу выбрать строки, упомянутые выше (содержат определенное слово («СОТРУДНИКИ») и заканчиваются определенным символом («;»))

Ответ №1:

Попробуйте выполнить следующий поиск по регулярному выражению в Notepad :

 Find: ^.*bEMPLOYEES[sS]*?;
  

Объяснение:

 ^              from the start of the line
    .*         match all content in that line until reaching
    b         a word boundary
    EMPLOYEES  followed by 'EMPLOYEES'
    [sS]*?   match all content, this time across newlines, until reaching
    ;          the nearest semicolon
  

Комментарии:

1. Спасибо. Это частично работает, но все равно не выбирает начало строки. Например: КОММЕНТАРИЙ К ТАБЛИЦЕ, СОЗДАНИЕ ТАБЛИЦЫ и т. Д.

2. @zoki182 Спасибо за отзыв, я обновил свой ответ и протестировал в NPP. Кажется, это работает.

3. Большое ВАМ спасибо, это работает! : D Может быть, есть решение, подобное этому, чтобы выбрать все строки (которые мы ищем) сразу? Если нет, это тоже сработает.

4. @zoki182 Ну, вы можете выполнить поиск всех в NPP, что может соответствовать тому, что вы имеете в виду.

5. @ Tim Biegeleisen Я обновил свой пост, не могли бы вы проверить / помочь мне с этим .. если есть решение .. 🙂