2016-08-08 32 views
-1

Ich versuche einen Weg zu finden, nach einem Buchstaben nach einem Teilstring zu suchen. Ich habe sowohl im Internet als auch im Google gesucht. Wenn also die Unterzeichenfolge lautet: sub und der Text lautet: substrings are cool, sollte True zurückgegeben werden, und wenn der Text lautet: sub dafdgnjgf sollte False zurückgegeben werden.Nach einem Teilstring nach Buchstaben suchen

+1

würden Sie bitte klären, was Sie wirklich wollen? – Athena

+0

Sollte 'xyz subA sub B'' True' oder 'False' zurückgeben? –

Antwort

3

Wenn Sie jeden gültigen Brief nach einer bestimmten Unterkette suchen, können Sie zunächst die Position des Unterkette in der Zeichenkette mit str.find finden, dann prüfen Sie, ob der Index nach der Unterkette Streichhölzern ascii_letters von string:

from string import ascii_letters 

sub = 'sub' 
s = 'substrings are cool' 

Nun, Ihr Scheck wie folgt aussehen kann, Index der Zeichenfolge nach an der Position str.find(sub) + len(sub) dh die Position nach dem Unter string:

if s[s.find(sub) + len(sub)] in ascii_letters: 
    print(True) 
else: 
    print(False) 

Dies druckt True wenn sub gefolgt von einem Buchstaben ist, wenn nicht:

s = 'sub dafdgnjgf' 

druckt False.

1

Sie könnten eine regular expression mit der Unter als Lookbehind, passend ein Zeichen verwenden:

>>> p = re.compile(r"(?<=sub)([a-zA-Z])") 
>>> p.search("substrings are cool") 
<_sre.SRE_Match at 0x7f3a50dbc300> 
>>> p.search("substrings are cool").group() 
's' 
>>> p.search("sub dafdgnjgf") 
None