2016-07-20 15 views
-3

Hallo Ich versuche, das Wort nach einem bestimmten Sub-String zu bekommen, wie ...Erhalten erstes Wort nach String in String

str = Quote from: Bob1 ... 

Ich versuche, von für jedes Mal Quote suchen: erscheint und erhalten das Wort nach, in diesem Fall Bob1.

Ich habe versucht:

print((re.findall(r'Quote from:\a\X\\9', str))) 

Aber es gibt nur [].

+4

Was erwarten Sie '\ a \ X \\ 9' übereinstimmen? – jonrsharpe

+0

@jonrsharpe Das erste Wort, das alphanumerisch sein kann, es ist dieses Muster, das falsch ist, aber ich bin mir nicht sicher, wie es zu beheben – Scott

+2

Nun, Sie könnten damit anfangen zu lesen, wie Regex-Muster arbeiten, anstatt eine scheinbar zufällige vermuten. Zum Beispiel https://docs.python.org/3/howto/regex.html – jonrsharpe

Antwort

4

Dies sollte für Sie funktionieren, mit split.

>>> str = "Quote from: Bob1 ..." 
>>> str.split("Quote from:")[1].split()[0] 
'Bob1' 
+1

Danke, funktioniert perfekt und ohne Regex! Wird nach Ablauf des Zeitlimits als beantwortet markiert. – Scott

+0

Auch leicht verwandelt in den Fall, wo Sie mehrere "Quote from:" Instanzen haben, wo Sie das folgende Wort finden möchten: '[frag.split() [0] für frag in str.split (" Zitat von: ") 1:]] ' – jedwards

+1

Auch 7 mal schneller als meins. +1 – piRSquared

1
import re 

s = 'Quote from: Bob1 ...' 
re.sub(r'Quote from: (\S+).*', r'\1', s) 

'Bob1'