Verwendung negativ Vorgriff Behauptung:
\bnot\b(?!\s+(?:good|bad))
Diese not
, außer in dem Fall entsprechen, wo good
und bad
sind direkt nach not
in der Zeichenkette. Ich habe Wortgrenze \b
hinzugefügt, um sicherzustellen, dass wir das Wort not
statt not
in nothing
oder knot
übereinstimmen.
\b
ist Wortgrenze. Es prüft, dass das Zeichen vorne Wortzeichen ist und das Zeichen nach nicht ist, und umgekehrt. Wort Zeichen ist normalerweise Englisch Alphabet (a-z, A-Z), Ziffer (0-9), und Unterstrich (_), aber es kann mehr abhängig von der Regex Geschmack.
(?!pattern)
ist die Syntax für negatives Look-Ahead mit Null-Breite - es wird überprüft, dass es vom aktuellen Punkt aus keine pattern
in der Eingabezeichenfolge mehr finden kann.
\s
bezeichnet Leerraumzeichen (Leerzeichen (ASCII 32), neue Zeile \n
, Registerkarte \t
usw. - Weitere Informationen finden Sie in der Dokumentation). Wenn Sie nicht beliebig aneinander anpassen wollen, ersetzen Sie einfach \s
durch
(Leerzeichen).
Die +
in \s+
entspricht einer oder mehreren Instanzen des vorhergehenden Tokens, in diesem Fall ist es Leerzeichen.
(?:pattern)
ist nicht einfangende Gruppe. Es gibt keine Notwendigkeit, good
und bad
zu erfassen, also ich für die Leistung angeben.
Danke, aber können Sie erklären, was jede Notation bedeutet? – CodeNoob
@CodeNoob: Bearbeitet. Ich nehme an, Sie kennen zumindest die grundlegenden Notationen. – nhahtdh
genial, sehr geschätzt. – CodeNoob