我有這樣一個長字串。我想針對其中的公司資料。我想鎖定一個以大寫字母開始(也就是公司名稱)、以許可型別/行動結束的塊,包括:后的文本。
DISTRICT ROW LLC
房產編號:0許可證密鑰。 0 進入日期: 09/08/2021
商號:OLSEN RUN WINERY 收到的日期。09/03/2021
地址。32900 DIAMOND HILL DR, HARRISBURG97446
電子郵件地址:[email protected]
許可證 型別/行動。F-COM / N/O
維爾科克斯比薩餅有限公司
場所號碼: 0 許可證密鑰。 0進入日期: 09/08/2021
商品名稱: FIGARO'S PIZZA 收到日期: 09/02/2021
地址: 4095 nw logan rd ste b, lincoln city 97367
電子郵件地址: [email protected]
許可證型別/行動。 O / N/O
輸出應該看起來像這樣
['DISTRICT ROW LLC
處所編號:0 許可證密鑰。 0 進入日期: 09/08/2021
商號: OLSEN RUN WINERY 收到的日期。09/03/2021
地址: 32900 diamond hill dr, harrisburg 97446
電子郵件地址: [email protected]
許可證型別/行動。F-COM / N/O']。
['WILCOX PIZZA LLC
場所號碼:0 許可證密鑰。 0 進入日期: 09/08/2021
商品名稱:FIGARO'S PIZZA 收到日期:09/02/'WILCOX PIZZA LLC: 09/02/2021年。
地址。4095 NW LOGAN RD STE B, LINCOLN CITY 97367
電子郵件地址: [email protected]
許可證 型別/行動。 O / N/O'] 。
這個正則運算式是什么呢?
uj5u.com熱心網友回復:
這里有一個re.findall的方法,似乎在作業:
parts = re.findall(r'[A-Z] (?: [A-Z] )*.*?許可型別/行動。[^
] ', inp, flags=re.DOTALL)
print(parts)
這個列印:
['DISTRICT ROW LLC
處所編號:0 許可證密鑰。 0 進入日期: 09/08/2021
商號: OLSEN RUN WINERY 收到的日期。09/03/2021
地址: 32900 diamond hill dr, harrisburg 97446
電子郵件地址: [email protected]
許可證型別/行動。F-COM / N/O'。
"WILCOX PIZZA LLC
場所號碼:0 許可證密鑰。 0 進入日期: 09/08/2021
商品名稱:FIGARO'S PIZZA 收到日期:09/02/2021 09/02/2021
地址: 4095 nw logan rd ste b, lincoln city 97367
電子郵件地址: [email protected]
許可證型別/行動。 O / N/O"]
下面是對regex模式的解釋:
。[A-Z] match first word of大寫的公司名稱
(?: [A-Z] )*空格后by更多公司字名
.*? 匹配 所有內容,跨越新行。
許可證型別/行動:直到達到 "許可證型別/行動:"
[] 單一空格
[^
] 匹配其余的最后行的內容
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/323603.html
標籤:
上一篇:VBA如果單元格包含值,則復制它
