[英]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.