\<
corresponde ao início de uma palavra
\>
corresponde ao final de uma palavra
\b
corresponde a ambas as fronteiras se no final ou no início
O importante sobre esses caracteres especiais é que eles combinam com uma string vazia e não com o próprio limite da palavra. um limite de palavra sendo o contrário do conjunto de caracteres representado por \w
equivalente de [_[:alnum:]]
(letra a a Z, dígitos e _
) na notação Posix.
Exemplo
Finalmente, Graeme encontre um exemplo muito interessante :
$ echo 'acegi z' | grep -o '[acegi ]*\>' | cat -A
acegi$
$ echo 'acegi z' | grep -o '[acegi ]*\b' | cat -A
acegi $
Atualmente, este exemplo mostra que pode ser útil às vezes corresponder precisamente ao final da palavra, em vez de um limite de palavra, porque o uso do caractere de espaço correspondente é evitado pela correspondência do final da palavra.
Então, em um exemplo mais útil, eu diria que se você quiser combinar caracteres que não sejam palavras e o final desta não palavra, você não pode usar \>
; mas talvez \b
possa ser usado neste caso em particular porque ele corresponderá ao início da próxima palavra.
Até agora, nenhum exemplo conseguiu chegar à minha mente.
Mas na minha opinião, provavelmente há alguns casos de uso em que faz sentido, mas meu palpite é que é apenas para fins de legibilidade, porque quando você coloca \b
é vago, mas se você precisa iniciar ou terminar a palavra, então dá um melhor compreensão do regexp para as pessoas que o lêem.