簡體   English   中英

使用正則表達式python提取文本塊

[英]Extract block of text using regex python

這是我的文本文件:

YN FILE=“stop.x" DATE=wwepweijfp Life=spfewff FUIL=“keener” CREATED_BY=“xxxxx” 
DY FD=4344334 HSH=OIHF 
DC A_GN=EFEFOK 
DF EFIIEFNFNEE
DF NIFENPEFEF
DF AO EIJHEPFN A0 pjwdwdwd
DF C0 STATICVECTOR 
ZZ ---------------< Fields >--------------------- 
DF A0 VERN FMGL ROJF AO
GS MOB40 99 
GA 4 Y 3 F 00H00M F 
G2 “eiberbnier       " EE 
C0 D56916E65D4500574124B15AD3226746A7F70AD7A3936A550BDB87FC077E9F4C7D36C4E9BFFA7545C4AE8C4173
A0 VDS1000170 34486EF018B1BF89 955486C529989CBC 89BCE463 919BC6E9 C927D0 09BA5356CD7CFFBD 
A0 VDS1000171 1951420D5909073A FF7B6A08E2BDC4AC E9593876 50ABACB9 894A6E 57AA4A23DE6414E0 

我想提取這個塊:

在此處輸入圖片說明

文本的第一行始終以 YN FILE 開頭。 我想提取所有內容,直到遇到以 A0 開頭的新行。

我試過這樣的:

matchObjj = re.search(r'YN.*\nC0.*\nA0', data, re.DOTALL)

但它也從換行符開始提取另一個A0

請注意,在正則表達式中, *已准備就緒。 這意味着如果還有其他以'A0'開頭的行,它將停在最后而不是在第一行。 所以你應該使用一個不貪心的*? . 一個組就足以擺脫最初的'A0' 它可以以:

matchObjj = re.search(r'(YN.*?\n)A0', data, re.DOTALL)
block = matchObjj.group(1)

暫無
暫無

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

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