Regular Expressions
Confine di parola
Ricerca…
Sintassi
- Stile POSIX, fine parola:
[[:>:]]
- Stile POSIX, inizio parola:
[[:<:]]
- Stile POSIX, limite di parole:
[[:<:][:>:]]
- SVR4 / GNU, fine della parola:
\>
- SVR4 / GNU, parola d'inizio:
\<
- Perl / GNU, limite di parole:
\b
- Tcl, fine della parola:
\M
- Tcl, inizio parola:
\m
- Tcl, limite di parole:
\y
- ERE portatile, inizio parola:
(^|[^[:alnum:]_])
- ERE portatile, fine parola:
([^[:alnum:]_]|$)
Osservazioni
Abbina la parola completa
\bfoo\b
corrisponderà alla parola completa senza alfanumerico e _
precedente o successivo.
Prendendo da regularexpression.info
Ci sono tre diverse posizioni che si qualificano come limiti di parole:
- Prima del primo carattere nella stringa, se il primo carattere è un carattere di parola.
- Dopo l'ultimo carattere nella stringa, se l'ultimo carattere è un carattere di parola.
- Tra due caratteri nella stringa, dove uno è un carattere di parola e l'altro non è un carattere di parola.
Il termine carattere parola qui significa uno dei seguenti
- Alfabeto (
[a-zA-Z]
) - Numero (
[0-9]
) - Sottolineatura
_
In breve, word character = \w
= [a-zA-Z0-9_]
Trova modelli all'inizio o alla fine di una parola
Esamina le seguenti stringhe:
foobarfoo
bar
foobar
barfoo
- la
bar
espressioni regolari corrisponderà a tutte e quattro le stringhe, -
\bbar\b
corrisponderà solo al secondo, -
bar\b
sarà in grado di abbinare la 2a e la 3a stringa, e -
\bbar
corrisponderà alla 2a e alla 4a stringa.
Confini di parola
Il metacarattere \b
Per rendere più facile trovare parole intere, possiamo usare il metacarattere \b
. Segna l' inizio e la fine di una sequenza alfanumerica *. Inoltre, poiché serve solo per contrassegnare queste posizioni, in realtà non corrisponde a nessun carattere da solo.
*: È comune chiamare una sequenza alfanumerica una parola, dato che possiamo catturare i suoi caratteri con un \w
(la parola classe caratteri). Ciò può essere fuorviante, tuttavia, poiché \w
include anche numeri e, nella maggior parte dei casi, il carattere di sottolineatura.
Esempi:
regex | Ingresso | Partite? |
---|---|---|
\bstack\b | stackoverflow | No , dal momento che non c'è nessuna occorrenza dell'intero stack parole |
\bstack\b | foo stack bar | Sì , poiché non c'è niente prima né dopo lo stack |
\bstack\b | stack!overflow | Sì : non c'è niente prima dello stack e ! non è un carattere di parole |
\bstack | stackoverflow | Sì , poiché non c'è niente prima dello stack |
overflow\b | stackoverflow | Sì , poiché non c'è niente dopo l' overflow |
Il metacarattere \B
Questo è l'opposto di \b
, corrispondente alla posizione di ogni carattere senza limiti. Come \b
, poiché corrisponde alle posizioni, non corrisponde a nessun carattere. È utile per trovare parole non intere.
Esempi:
regex | Ingresso | Partite? |
---|---|---|
\Bb\B | abc | Sì , poiché b non è circondato da limiti di parole. |
\Ba\B | abc | No , a ha un limite di parole sul lato sinistro. |
a\B | abc | Sì, a non ha un confine di parola sul lato destro. |
\B,\B | a,,,b | Sì , corrisponde alla seconda virgola perché \B corrisponderà anche allo spazio tra due caratteri diversi da una parola (si noti che c'è un limite di parole alla sinistra della prima virgola e alla destra della seconda). |
Rendi il testo più breve ma non spezzare l'ultima parola
Per rendere il testo lungo al massimo N caratteri ma lasciare l'ultima parola intatta, utilizzare .{0,N}\b
modello:
^(.{0,N})\b.*