2

我在这里有这个字符串:

*TACK F\u00d6R DIN BOKNING MED RYANAIR*****\r\n------------------------------\r\n\r\nV\u00e4nligen svara inte p\u00e5 detta e-postmeddelande.****\r\n------------------------------\r\n\r\nDITT BOKNINGSNUMMER \u00c4R:* A1A1A1*****\r\n\r\nF\u00d6R ATT F\u00c5 RESA M\u00c5STE DU CHECKA IN VIA INTERNET OCH P\u00c5 FLYGPLATSEN VISA UPP\r\nDITT INTERNETBOARDINGKORT OCH GILTIG ACCEPTERAD RESEHANDLING. PASSAGERARE\r\nSOM INTE VISAR UPP ETT BOARDINGKORT P\u00c5 FLYGPLATSEN KOMMER ATT BLI\r\nDEBITERADE EN STRAFFAVGIFT F\u00d6R NY-UTSKRIFT P\u00c5 EURO40/GBP40.(varje\r\nboardingkort m\u00e5ste vara utskrivet och presenteras p\u00e5 individuella A4-ark).**\r\n**\r\n\r\nDu kan checka in via Internet fr\u00e5n 15 dagar fram till 4 timmar innan\r\nflygets schemalagda avg\u00e5ng.****\r\n\r\nRESEPLAN/KVITTO \u2013 alla tider \u00e4r lokala.****\r\n\r\nUTRESA****\r\n\r\nFr\u00e5n Milano (Bergamo) (BGY) till Stockholm Skavsta (NYO)\r\nSat, 14Aug10 Flyg FR1944 Avg\u00e5ng BGY kl 21:00 och ankomst NYO kl 23:30****\r\n\r\nPASSAGERARE****\r\n\r\n

而且,我需要在“UTRESA”和“PASSAGERARE”之间提取数据。所以我尝试了这个:

re.search(r'UTRESA (.+)PASSAGERARE',x)

出于某种原因,它没有提取数据!你们能否向我解释为什么我不提取数据以及解决方案?

4

1 回答 1

6

匹配换行符时需要使用该DOTALL标志:

re.search(r'UTRESA(.+)PASSAGERARE', x, re.DOTALL)

UTRESA 之后没有空格。

演示:

>>> re.search(r'UTRESA(.+)PASSAGERARE', x, re.DOTALL).groups()
('****\r\n\r\nFr\\u00e5n Milano (Bergamo) (BGY) till Stockholm Skavsta (NYO)\r\nSat, 14Aug10 Flyg FR1944 Avg\\u00e5ng BGY kl 21:00 och ankomst NYO kl 23:30****\r\n\r\n',)
于 2012-08-25T21:01:52.900 回答