O padrão global ou expressão regular [ -~]
corresponde a todos os caracteres imprimíveis no código do idioma C: corresponde a todos os caracteres de 32 (espaço) a 126 (til). Em uma localidade diferente de C (mais precisamente, se LC_COLLATE
não for C), se o aplicativo tiver reconhecimento de local, isso poderá corresponder a outros caracteres.
Outra maneira de escrever esse padrão é [[:print:]]
. No entanto, isso corresponde a todos os caracteres imprimíveis na localidade atual (com base na configuração LC_CTYPE
), portanto, não é melhor que [ -~]
para seu caso de uso. Além disso, pode não funcionar se o aplicativo ou a biblioteca do sistema for muito antiquado para entender a sintaxe [:class:]
.
A sintaxe [[cHARS]]
do Super (se a opção global patterns=shell
estiver definida) segue o mesmo princípio, por isso é [[ -~]]
para significar apenas "caracteres ASCII imprimíveis". Super não define nenhuma localidade diferente de LC_CTYPE
, então você está seguro disso. Certifique-se de que patterns=shell
seja definido; o padrão é patterns=regex
, que exige que você escreva ^[ -~]*$
.