Regular Expressions
Słowo granica
Szukaj…
Składnia
- Styl POSIX, koniec słowa:
[[:>:]]
- Styl POSIX, początek słowa:
[[:<:]]
- Styl POSIX, granica słów:
[[:<:][:>:]]
- SVR4 / GNU, koniec słowa:
\>
- SVR4 / GNU, początek słowa:
\<
- Perl / GNU, granica słów:
\b
- Tcl, koniec słowa:
\M
- Tcl, początek słowa:
\m
- Tcl, granica słów:
\y
- Portable ERE, początek słowa:
(^|[^[:alnum:]_])
- Portable ERE, koniec słowa:
([^[:alnum:]_]|$)
Uwagi
Dopasuj pełne słowo
\bfoo\b
dopasuje całe słowo bez alfanumerycznych i _
poprzedzających go lub następujących po nim.
Pobieranie z regularexpression.info
Istnieją trzy różne pozycje, które kwalifikują się jako granice słów:
- Przed pierwszym znakiem w ciągu, jeśli pierwszy znak jest znakiem słownym.
- Po ostatnim znaku w ciągu, jeśli ostatni znak jest znakiem słownym.
- Pomiędzy dwoma znakami w ciągu, gdzie jeden jest znakiem słownym, a drugi nie jest znakiem słownym.
Termin znak słowo oznacza tutaj dowolne z poniższych
- Alfabet (
[a-zA-Z]
) - Numer (
[0-9]
) - Podkreśl
_
Krótko mówiąc, znak słowny = \w
= [a-zA-Z0-9_]
Znajdź wzory na początku lub na końcu słowa
Sprawdź następujące ciągi:
foobarfoo
bar
foobar
barfoo
-
bar
wyrażeń regularnych będzie pasował do wszystkich czterech ciągów, -
\bbar\b
będzie pasować tylko do 2., -
bar\b
będzie w stanie dopasować 2. i 3. ciąg, oraz -
\bbar
dopasuje 2. i 4. ciąg.
Granice słów
Metaznak \b
Aby ułatwić wyszukiwanie całych słów, możemy użyć metaznaka \b
. Oznacza początek i koniec sekwencji alfanumerycznej *. Ponadto, ponieważ służy jedynie do oznaczania tych lokalizacji, w rzeczywistości nie pasuje do żadnej postaci.
*: Często nazywa się sekwencję alfanumeryczną słowem, ponieważ możemy złapać jej znaki za pomocą \w
(klasa znaków słownych). Może to być jednak mylące, ponieważ \w
zawiera również liczby i, w większości smaków, podkreślenie.
Przykłady:
Regex | Wejście | Mecze? |
---|---|---|
\bstack\b | stackoverflow | Nie , ponieważ nie ma miejsca na cały stack słów |
\bstack\b | foo stack bar | Tak , ponieważ nie ma nic przed ani po stack |
\bstack\b | stack!overflow | Tak : przed stack nie ma nic ! nie jest słowem |
\bstack | stackoverflow | Tak , ponieważ przed stack nie ma nic |
overflow\b | stackoverflow | Tak , ponieważ po overflow nic nie ma |
Metaznak \B
Jest to przeciwieństwo \b
, dopasowując się do położenia każdego znaku bez granic. Podobnie jak \b
, ponieważ pasuje do lokalizacji, nie pasuje do żadnej postaci. Jest to przydatne do znalezienia niż całe słowa.
Przykłady:
Regex | Wejście | Mecze? |
---|---|---|
\Bb\B | abc | Tak , ponieważ b nie jest otoczone granicami słów. |
\Ba\B | abc | Nie , a ma lewą granicę słowa. |
a\B | abc | Tak , a nie ma granicy słów po prawej stronie. |
\B,\B | a,,,b | Tak , pasuje do drugiego przecinka, ponieważ \B dopasuje również spację między dwoma znakami niebędącymi wyrazami (należy zauważyć, że granica znaków znajduje się po lewej stronie pierwszego przecinka i po prawej stronie drugiego). |
Skróć tekst, ale nie łam ostatniego słowa
Aby utworzyć długi tekst o długości maksymalnie N znaków, ale pozostawić ostatnie słowo nienaruszone, użyj wzoru .{0,N}\b
:
^(.{0,N})\b.*