As expressões regulares permitem que você use Expressão de cabeçalho para representar o conjunto de elementos de agrupamento. A sintaxe para Bracket Expression
é [...]
, onde você pode colocar em ...
qualquer um dos elementos de intercalação, símbolos de agrupamento, classes de equivalência, classes de caracteres ou expressões de intervalo.
O que você usa alpha
é um nome de classe de caractere, criado pelo nome da classe de local entre [:
e :]
. Então, você usou a expressão da classe de caracteres [:alpha:]
entre Bracket Expression
[[:alpha:]]
.
A expressão de classe de caractere não é igual à expressão de intervalo [a-zA-Z]
em algumas localidades. Veja o melhor exemplo que você pode ver:
$ LC_ALL=en_US.utf8 bash -c 'case b in [A-Z]) echo yes; esac'
yes
enquanto usa a classe de personagem, não deu nada:
$ LC_ALL=en_US.utf8 bash -c 'case b in [[:upper:]]) echo yes; esac'
O caret ^
, se colocado no início de Bracket Expression
, negará a correspondência da expressão. [^[:alpha:]]
corresponderá a todos os caracteres que não pertencem à classe [:alpha:]
characters:
$ case 1 in [^[:alpha:]]) echo yes;; esac
yes