Regulärer Ausdruck für genau passende Zeichenfolge?

8

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:

  • Strings bestehend aus genau 6 Ziffern
  • Strings bestehend aus genau 6 Ziffern, einer Dezimalzahl gefolgt von genau 3 weiteren Ziffern

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

    
Craig Otis 13.08.2010, 17:34
quelle

5 Antworten

37

Verwenden Sie ^ und $ , um den Anfang und das Ende Ihrer Zeichenfolge zu finden

%Vor%

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%     
CaffGeek 13.08.2010, 17:36
quelle
4

Sie können ^ verwenden, um den Abgleich am Anfang einer Zeile und $ das Ende einer Zeile zu verlangen.

%Vor%

[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

%Vor%

stimmt mit dem Wort test in dieser Zeile überein

%Vor%     
Mikael Svenson 13.08.2010 17:36
quelle
1

Entsprechen Sie diesem Regex:

%Vor%     
Gopi 13.08.2010 17:38
quelle
1

Ich denke, du willst so etwas:

%Vor%

Sie müssen dem "Punkt" entkommen, da es sich um ein "beliebiges" Zeichen in Regexp handelt.

    
Ryan Conrad 13.08.2010 17:38
quelle
1
%Vor%

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!

    
Jarrod Roberson 13.08.2010 17:38
quelle

Tags und Links