Wie Sie reguläre Ausdrücke verwenden, tun reverse-Suche?
Beispielsweise:
Mein string ist: 123456789 nn nn oo nn nn mlm nn203
.
Mein Ziel ist: nn
.
Dann, ich mit string vom Ende an den Anfang und zurück, das erste Spiel Ergebnis und seine Stellung.
In diesem examlpe, das Ergebnis ist nn
starten in [-5] Ende [-3].
Ich schrieb das einfach funcitonto machen diesen Prozess, aber, wie Sie reguläre Ausdrücke verwenden, um diesen job zu machen?
- Hm, wenn der Suchbegriff war 'na', würden Sie es mögen, zu entsprechen vorwärts oder rückwärts im string (also match Mensch oder name)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für den string selbst, nur ein findall und die Letzte eins:
Drucke
nn5
Können Sie auch das gleiche tun mit
finditer
was es leichter macht, finden die relevanten Indizes:Drucke
('nn5', 27, 30)
Wenn Sie eine Menge von spielen und Sie wollen nur das Letzte, manchmal macht es Sinn, einfach umkehren Sie die string-und Muster:
Drucke
nn5
search
existiert, nachdem die Schleife fertig ist.)Zunächst, wenn Sie nicht auf der Suche nach einem regulären Ausdruck,
string.rfind
ist viel einfacher, es richtig zu machen.Können Sie einen regulären Ausdruck verwenden, indem Sie mit einer negativen lookahead-Funktion finden Sie in der Dokumentation von re:
Idee:
Beispiel: