Ich werde diese Frage vorbringen, indem ich erwähne, dass ich, obwohl ich weit entfernt von einem Guru für reguläre Ausdrücke bin, mir nicht völlig fremd sind. Einen regulären Ausdruck zu erstellen, um nach einem Muster innerhalb einer bestimmten Zeichenkette zu suchen, ist im Allgemeinen kein Problem für mich, aber ich habe eine (vielleicht?) Einzigartige Situation.
Ich habe eine Reihe von Werten, sagen wir:
028938
DEF567987
390987.456
GHI345928.039
Ich möchte eine bestimmte Menge von Strings anpassen, wie zum Beispiel:
In den obigen Beispielen sollten die ersten und dritten Werte übereinstimmen.
Ich verwende die regulären Ausdrücke:
%Vor%Da alle oben genannten Beispiele das angegebene Muster enthalten, werden leider alle Werte verglichen. Das ist nicht meine Absicht.
Meine Frage lautet also, wie man einen regulären Ausdruck schreibt, der genau und vollständig einer Zeichenkette entspricht und keine zusätzlichen Zeichen rechts oder links vom übereinstimmenden Muster enthält? Gibt es einen Begriff für diese Art der Übereinstimmung? (Google war keine Hilfe.) TIA
Verwenden Sie ^
und $
, um den Anfang und das Ende Ihrer Zeichenfolge zu finden
Referenz: Ссылка
Wie Sie auch von Mikael Svenson wissen, können Sie die Wortgrenze \b
verwenden, wenn Sie dieses Muster in einem größeren Textabschnitt suchen.
Referenz: Ссылка
Sie könnten auch beide Regexes auf einmal schreiben
%Vor% Sie können ^
verwenden, um den Abgleich am Anfang einer Zeile und $
das Ende einer Zeile zu verlangen.
[0-9] kann auch als \ d
geschrieben werden %Vor% Sie können \b
auch für Wortgrenzen verwenden, wenn Sie Ihr Muster in einer Zeile mit z. Leerzeichen in ihnen
stimmt mit dem Wort test
in dieser Zeile überein
Ich denke, du willst so etwas:
%Vor%Sie müssen dem "Punkt" entkommen, da es sich um ein "beliebiges" Zeichen in Regexp handelt.
sind die korrekten Muster, die Sie testen können nur 6 Ziffern und 6 Ziffern dot 3 Ziffern .
%Vor%entspricht entweder 6-stellig oder 6-stellig 3-stellig
Rubular ist dein Freund!