2017-02-08 9 views
0

Ich habe eine Frage. Ich versuche, eine bestimmte Zeichenfolge zwischen zwei Teilzeichenfolgen aus einer Textdatei zu erhalten.Python: Get Text zwischen zwei Strings

Die Textdatei ist größer, aber ein Teil davon enthält diese:

r\n[url=asitename][/url]\r\n[url=x]hello[/url]\r\n[url=x]a text[/url]\r\n[url=n]test[/url]\r\n\ttest
\r\n\t\t\r\n\t\twarn user\r\n\t\r\n\t2\r\n\t02-06-2017, 01:44 am
by cinccino. end: modcp_reports_report -->

Nun, ich bin an dem Text neben zwischen ‚asitename‘ und ‚Ende:‘

Ich mag Holen Sie den Text zwischen diesen Zeichenfolgen.

Ich habe dies versucht:

lookup = 'asitename' 
myFileread = myFile.read() 
re.search(lookup+'(.*)end', myFileread).group(1) 

Aber es gibt die folgende Fehlermeldung:

AttributeError: 'NoneType' object has no attribute 'group'

Ich bin verwirrt, warum dies nicht funktioniert. Es funktioniert mit einfacheren Strings.

+1

können Sie die Ausgabe Sie teilen? –

Antwort

0

Return None if no position in the string matches the pattern; note that this is different from finding a zero-length match at some point in the string.

Es scheint .search() gibt keine zurück. Laut Python api bedeutet dies, dass es keine Position gibt, die dem Muster entspricht.

1

Verwenden Sie die re.S Flagge, die . die neue Linie Charakter machen entsprechen (n) auch:

>>> re.search(r'asitename(.*?)end', myFileread, re.S).group(1) 
'][/url]\r\n[url=x]hello[/url]\r\n[url=x]a text[/url]\r\n[url=n]test[/url]\r\n\ttest\n\r\n\t\t\r\n\t\twarn user\r\n\t\r\n\t2\r\n\t02-06-2017, 01:44 am\nby cinccino. 
+0

Leider gibt das den gleichen Fehler zurück. – hellobro

+0

Stellen Sie sicher, dass 'myFileread' die richtige Zeichenfolge ist –

Verwandte Themen