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
-
barwyrażeń regularnych będzie pasował do wszystkich czterech ciągów, -
\bbar\bbędzie pasować tylko do 2., -
bar\bbędzie w stanie dopasować 2. i 3. ciąg, oraz -
\bbardopasuje 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.*