Regular Expressions
Wortgrenze
Suche…
Syntax
- POSIX-Stil, Wortende:
[[:>:]]
- POSIX-Stil, Wortanfang:
[[:<:]]
- POSIX-Stil, Wortgrenze:
[[:<:][:>:]]
- SVR4 / GNU, Wortende:
\>
- SVR4 / GNU, Wortanfang:
\<
- Perl / GNU, Wortgrenze:
\b
- Tcl, Wortende:
\M
- Tcl, Wortanfang:
\m
- Tcl, Wortgrenze:
\y
- Portable ERE, Wortanfang:
(^|[^[:alnum:]_])
- Portable ERE, Wortende:
([^[:alnum:]_]|$)
Bemerkungen
Vollkommenes Wort
\bfoo\b
entspricht dem vollständigen Wort ohne alphanumerische Zeichen und _
vor oder nach ihm.
Einnahme von regularexpression.info
Es gibt drei verschiedene Positionen, die sich als Wortgrenzen eignen:
- Vor dem ersten Zeichen in der Zeichenfolge, wenn das erste Zeichen ein Wortzeichen ist.
- Nach dem letzten Zeichen in der Zeichenfolge, wenn das letzte Zeichen ein Wortzeichen ist.
- Zwischen zwei Zeichen in der Zeichenfolge, wobei eines ein Wortzeichen und das andere kein Wortzeichen ist.
Der Begriff " Wort" bedeutet hier Folgendes
- Alphabet (
[a-zA-Z]
) - Nummer (
[0-9]
) - Unterstrich
_
Kurz gesagt, Wortzeichen = \w
= [a-zA-Z0-9_]
Finden Sie Muster am Anfang oder Ende eines Wortes
Untersuchen Sie die folgenden Zeichenfolgen:
foobarfoo
bar
foobar
barfoo
- Die
bar
für reguläre Ausdrückebar
zu allen vier Zeichenfolgen. -
\bbar\b
nur mit dem zweiten überein. -
bar\b
kann die 2. und 3. Saite und -
\bbar
der 2. und 4. Saite.
Wortgrenzen
Das \b
Metazeichen
Um das Auffinden ganzer Wörter zu erleichtern, können wir das Metazeichen \b
. Es markiert den Anfang und das Ende einer alphanumerischen Sequenz *. Da es nur dazu dient, diese Orte zu markieren, stimmt es eigentlich mit keinem Zeichen überein.
*: Es ist üblich, eine alphanumerische Folge ein Wort zu nennen, da wir die Zeichen mit einem \w
(der Wortzeichenklasse) fangen können. Dies kann jedoch irreführend sein, da \w
auch Zahlen und in den meisten Geschmacksrichtungen den Unterstrich enthält.
Beispiele:
Regex | Eingang | Streichhölzer? |
---|---|---|
\bstack\b | stackoverflow | Nein, da gibt es keine ocurrence des ganzen Wortes stack |
\bstack\b | foo stack bar | Ja , da gibt es weder vor noch nach dem stack |
\bstack\b | stack!overflow | Ja : vor dem stack gibt es nichts und ! ist kein Wortzeichen |
\bstack | stackoverflow | Ja , da ist nichts vor dem stack |
overflow\b | stackoverflow | Ja , da gibt es nach overflow nichts |
Das \B
Metazeichen
Dies ist das Gegenteil von \b
, das mit der Position jedes Nicht-Begrenzungszeichens übereinstimmt. Wie \b
, da er mit Orten übereinstimmt, keinem eigenen Zeichen. Es ist nützlich, um nicht ganze Wörter zu finden.
Beispiele:
Regex | Eingang | Streichhölzer? |
---|---|---|
\Bb\B | abc | Ja , da b nicht von Wortgrenzen umgeben ist. |
\Ba\B | abc | Nein , a hat eine Wortgrenze auf der linken Seite. |
a\B | abc | Ja , a hat keine Wortgrenze auf der rechten Seite. |
\B,\B | a,,,b | Ja , es stimmt mit dem zweiten Komma überein, da \B auch mit dem Leerzeichen zwischen zwei Nicht-Wort-Zeichen übereinstimmt . |
Text kürzer machen, aber das letzte Wort nicht brechen
Um langen Text maximal N Zeichen lang zu machen, aber das letzte Wort intakt zu lassen, verwenden Sie .{0,N}\b
^(.{0,N})\b.*