#python #regex #string
#python #регулярное выражение #строка
Вопрос:
У меня есть текст в файле, который я помещаю в строку.
txt = "PRIMARY INDEX its_mnth_content_aggr ( AC_ID ,ROW_ADDED_DT ,NOTE_SEQ_NR ,BIZ_UNIT_CD ,
DISPATCH_ID ,CASE_CREATE_DT )
ABDCGFWERRUU
asdffggb
PRIMARY INDEX its_mnth_content_aggr ( AC_CASE ,ROW_ADDED_DT ,NOTE_SEQ_NR ,BIZ_UNIT_CD ,
DISPATCH_ID ,CASE_CREATE_DT )"
Я хочу извлечь из него полный первичный индекс, как в первичном индексе (….)
пока у меня есть ниже
x3 = re.findall(r"bPRIMARYsINDEXsw W.*", txt)
это дает мне
['PRIMARY INDEX its_mnth_content_aggr ( AC_CASE_ID ,ROW_ADDED_DT ,NOTE_SEQ_NR ,BIZ_UNIT_CD ,DISPATCH_ID ,CASE_CREATE_DT ) ABDCGFWERRUU qwerrtyyuiu PRIMARY INDEX its_mnth_content_aggr ( AC_CASE_ID ,ROW_ADDED_DT ,NOTE_SEQ_NR ,BIZ_UNIT_CD ,DISPATCH_ID ,CASE_CREATE_DT )']
Я хочу что-то вроде этого
['PRIMARY INDEX its_mnth_content_aggr ( AC_CASE_ID ,ROW_ADDED_DT ,NOTE_SEQ_NR ,BIZ_UNIT_CD ,DISPATCH_ID ,CASE_CREATE_DT ) PRIMARY INDEX its_mnth_content_aggr ( AC_CASE_ID ,ROW_ADDED_DT ,NOTE_SEQ_NR ,BIZ_UNIT_CD ,DISPATCH_ID ,CASE_CREATE_DT )']
может кто-нибудь, пожалуйста, помочь
Комментарии:
1. Кроме того, моя строка включает в себя новые строки между значениями основного индекса
2.
r'bPRIMARYs INDEXs w s*([^()]*)'
?
Ответ №1:
В вашем регулярном выражении говорится, что вам нужна строка, начинающаяся с PRIMARY INDEX
, за которой следуют любые символы. Таким образом, он соответствует всей вашей строке;
Вы должны быть более конкретными.
PRIMARY INDEX[A-Za-z(_,n\ ]*)
- строка должна начинаться с:
PRIMARY INDEX
- тогда в
[A-Za-z(_,n\ ]
может быть любая буква или специальные символы, за которыми следует*
, потому что мы не знаем количество этих символов. - и это заканчивается
)
Вы можете попробовать это здесь
Ответ №2:
Вы можете использовать
re.findall(r'bPRIMARYs INDEXs w s*([^()]*)', txt)
Смотрите демонстрацию регулярных выражений
Подробные сведения
b
— граница словаPRIMARYs INDEX
—PRIMARY
, 1 пробелы,INDEX
s
— 1 пробелыw
— символы 1 words*
— 0 пробелов(
—(
символ[^()]*
— 0 символов, отличных от(
и)
)
—)
символ.