这是我的文本文件:
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
。
答案 0 :(得分:1)
当心,在正则表达式中,*
已经存在。这意味着,如果还有其他以'A0'
开头的行,它将在最后而不是在第一行停止。因此,您应该使用不满意的*?
。一个小组就足以摆脱最初的'A0'
。它可以结尾为:
matchObjj = re.search(r'(YN.*?\n)A0', data, re.DOTALL)
block = matchObjj.group(1)