使用正则表达式python提取字符串
我有一个文件中的文本,我正在将其推入字符串中使用正则表达式python提取字符串,python,regex,string,Python,Regex,String,我有一个文件中的文本,我正在将其推入字符串中 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 ,
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"\bPRIMARY\sINDEX\s\w+\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 )']
有人能帮忙吗你的正则表达式说你想要一个以
主索引开头的字符串,后面跟任何字符。所以它匹配所有的字符串
你必须更具体一些
PRIMARY INDEX[A-Za-z(_,\n\\ ]*\)
- 字符串应以:
主索引开始
- 然后在
[A-Za-z(\u\n\\]
中可能有任何字母或特殊字符,后面跟着*
,因为我们不知道这些字符的数量
- 它的结尾是一个
)
你可以试试看你可以用
re.findall(r'\bPRIMARY\s+INDEX\s+\w+\s*\([^()]*\)', txt)
见
详细信息
\b
-单词边界
PRIMARY\s+索引
-PRIMARY
,1+空格,索引
\s+
-1+空格
\w+
-1+字字符
\s*
-0+空格
\(
-a(
字符
[^()]*
-0+字符,而不是(
和)
\)
-a)
字符
此外,我的字符串还包括主索引值之间的换行符r'\bPRIMARY\s+index\s+\w+\s*\([^()]*\)'
?