#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 Я обновил свой пост, не могли бы вы проверить / помочь мне с этим .. если есть решение .. 🙂