簡體   English   中英

使用正則表達式python提取字符串

[英]extract strings using regex 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"\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開頭的字符串,后跟任何字符。 所以它匹配你所有的字符串;


你必須更具體。

PRIMARY INDEX[A-Za-z(_,\n\\ ]*\)
  • 字符串應以: PRIMARY INDEX開頭
  • 那么[A-Za-z(_,\\n\\\\ ]可能有任何字母或特殊字符,后跟*因為我們不知道這些字符的數量。
  • 並以)結尾

你可以在這里試試

您可以使用

re.findall(r'\bPRIMARY\s+INDEX\s+\w+\s*\([^()]*\)', txt)

查看正則表達式演示

細節

  • \\b - 詞邊界
  • PRIMARY\\s+INDEX - PRIMARY , 1+ 空格, INDEX
  • \\s+ - 1+ 個空格
  • \\w+ - 1+ 個字字符
  • \\s* - 0+ 個空格
  • \\( - a (字符
  • [^()]* - 除()之外的 0+ 個字符
  • \\) - a )字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM