Я пытаюсь удалить временные таблицы из ddl из более чем 100 таблиц, проанализировав файл с помощью python и regex. Мне удалось получить результат, который я хочу использовать '_TMP' in line
, но я отчаянно хочу добиться этого с помощью регулярного выражения. У меня возникли проблемы с выяснением того, как разбирать несколько строк, что невозможно, если вы повторяете строку за строкой правильно?Разбор ddl в Python с регулярным выражением с использованием re
Пример DDL:
CREATE TABLE EXNAME.EXTABLE_TMP (
CONTRIBUTOR_ID VARCHAR2(32) NOT NULL,
AFFILIATION_TYPE VARCHAR2(10) NOT NULL,
SEQ_NUMBER NUMBER(2) NOT NULL,
PRIMARY KEY (CONTRIBUTOR_ID,AFFILIATION_TYPE,SEQ_NUMBER)
);
CREATE TABLE EXNAME.EXTABLE (
CONTRIBUTOR_ID VARCHAR2(32) NOT NULL,
AFFILIATION_TYPE VARCHAR2(10) NOT NULL,
SEQ_NUMBER NUMBER(2) NOT NULL,
PRIMARY KEY (CONTRIBUTOR_ID,AFFILIATION_TYPE,SEQ_NUMBER)
);
Мое текущее решение:
f.open('/path/to/file.txt')
copy.open('/path/to/fileCopy.txt')
tmpFound = False
for line in f:
if '_TMP' in line:
tmpFound = True
elif tmpFound == True and ';' in line:
tmpFound = False
continue
if not tmpFound:
print(line)
copy.write(line)
f.close()
copy.close()
Каков ваш ожидаемый результат? –
Если это одноразовая операция, вы можете использовать SublimeText, которые поддерживают рекурсивный синтаксис regex для удаления таблицы _TMP. Python 're' не соответствует задаче, если вы хотите написать минимальный код. – nhahtdh