Ich habe einen regulären Ausdruck, mit dem ich alle Wörter in einem bestimmten Inhaltsblock finde, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird und die in einem in einer Datenbank gespeicherten Glossar enthalten sind. Hier ist mein Muster:
/($word)/i
Das Problem ist, wenn ich /(Foo)/i
dann Wörter wie Food
get übereinstimmen. Auf beiden Seiten des Wortes muss ein Leerzeichen oder eine Wortgrenze vorhanden sein.
Wie kann ich meinen Ausdruck so ändern, dass er nur mit dem Wort übereinstimmt, Foo
wenn es sich um ein Wort am Anfang, in der Mitte oder am Ende eines Satzes handelt?
regex
word-boundary
Aaron
quelle
quelle
\b(<|>=)\b
passt nicht zusammen>=
\b[-|+][0-9]+\b
Match+10
in43E+10
. Beides will ich nicht.Um ein ganzes Wort zu finden, würden Sie das Muster verwenden
(\w+)
Angenommen, Sie verwenden PCRE oder ähnliches:
Der obige Screenshot stammt aus diesem Live-Beispiel: http://regex101.com/r/cU5lC2
Abgleichen eines ganzen Wortes in der Befehlszeile mit
(\w+)
Ich werde die interaktive phpsh-Shell unter Ubuntu 12.10 verwenden , um die PCRE-Regex-Engine mit der als preg_match bekannten Methode zu demonstrieren
Starten Sie phpsh, fügen Sie Inhalte in eine Variable ein und stimmen Sie mit dem Wort überein.
Die preg_match Methode verwendet , um den PCRE Motor innerhalb der Sprache PHP Variablen zu analysieren
$content1
,$content2
und$content3
mit dem(\w)+
Muster.$ content1 und $ content2 enthalten mindestens ein Wort, $ content3 nicht.
Ordnen Sie eine Reihe von wörtlichen Wörtern in der Befehlszeile zu
(dart|fart)
Die Variablen gun1 und gun2 enthalten den String Dart oder Fart. gun4 nicht. Allerdings kann es ein Problem sein , dass für Wort sucht
fart
Streichhölzerfarty
. Um dies zu beheben, erzwingen Sie Wortgrenzen in Regex.Ordnen Sie wörtliche Wörter in der Befehlszeile den Wortgrenzen zu.
Es ist also dasselbe wie im vorherigen Beispiel, außer dass das Wort
fart
mit einer\b
Wortgrenze im Inhalt nicht vorhanden ist :farty
.quelle
Die Verwendung
\b
kann zu überraschenden Ergebnissen führen. Sie sollten besser herausfinden, was ein Wort von seiner Definition unterscheidet, und diese Informationen in Ihr Muster integrieren.Ausgabe:
quelle
benutze Wortgrenzen \ b,
Folgendes funktioniert (mit vier Escapezeichen) in meiner Umgebung: Mac, Safari Version 10.0.3 (12602.4.8)
quelle
Für diejenigen, die eine Aufzählung in ihrem Code validieren möchten, können Sie der Anleitung folgen
In Regex World können Sie
^
eine Zeichenfolge starten und$
beenden. Die Verwendung in Kombination mit|
könnte das sein, was Sie wollen:^(Male)$|^(Female)$
Es wird nur für
Male
oderFemale
case true zurückgegeben .quelle
^
und$
stimmen mit dem Anfang (bzw. dem Ende) einer Zeile überein, daher würde Ihr Beispiel nur übereinstimmen , wenn dies die einzigen Wörter in der Zeile sind.Wenn Sie es in Notepad ++ tun
Würde Ihnen das gesamte Wort geben, und Sie können Klammern hinzufügen, um es als Gruppe zu erhalten. Beispiel :
conv1 = Conv2D(64, (3, 3), activation=LeakyReLU(alpha=a), padding='valid', kernel_initializer='he_normal')(inputs)
. Ich möchteLeakyReLU
als Kommentar in eine eigene Zeile wechseln und die aktuelle Aktivierung ersetzen. In Notepad ++ kann dies mit dem folgenden Befehl find find erfolgen:und der Ersetzungsbefehl wird:
Die Leerzeichen sollen die richtige Formatierung in meinem Code beibehalten. :) :)
quelle
Holen Sie sich alle "Wörter" in einer Zeichenfolge
/([^\s]+)/g
quelle