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
A
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
würden Sie bitte klären, was Sie wirklich wollen? – Athena
Sollte 'xyz subA sub B'' True' oder 'False' zurückgeben? –