2017-07-27 2 views
-3
text = "This text is not important but name of teacher, name of dog and name of cat is very interesting" 

Und ich brauche Worte hinzufügen neben "Namen" in einer ListeSuche (e) direkt nach einem bestimmten Teilkette in Python

match = [teacher, dog, cat] 
+0

Ok, und was haben Ihre Versuche führten zu? – roganjosh

+0

Bitte verbessern Sie Ihre Fragequalität. Sie können in weitere Tipps finden: [? ** Wie stelle ich eine gute Frage **] (https://stackoverflow.com/help/how-to-ask) und [** Wie ein Minimal, erstellen Complete, und verifizierbares Beispiel **] (https://stackoverflow.com/help/mcve) Seiten. –

Antwort

5

Mit re.findall vom re Modul (import re zuerst):

In [1033]: re.findall('(?<=name of)\w+', text) 
Out[1033]: ['teacher', 'dog', 'cat'] 

'(?<=name of)\w+' 

Verwendet einen Lookbehind fester Breite und extrahiert Text, der auf 'name of ' folgt.

Alternativ kann ein etwas kugelsicher regex wäre: '(?:name\s+of\s+)(\w+)' (unter Berücksichtigung Leerzeichen variiert).

+0

Nitpick: '(?: Name \ s +) (\ w +)' wäre wahrscheinlich besser als ein Lookbehind falls es mehr als ein Raum zwischen dem ‚Präfix‘ und dem Wort selbst. – zwer

+1

@zwer Nitpick akzeptiert. –

Verwandte Themen