O símbolo de acento circunflexo dentro de conjuntos em expressões regulares JavaScript
Como você sabe, o acento circunflexo dentro de [ ] cria
uma negação quando escrito no início dos colchetes.
Portanto, é um metacaractere dentro
desses colchetes. Para obter o acento circunflexo como um caractere literal,
é necessário escapá-lo ou removê-lo da
primeira posição.
Exemplo
No exemplo a seguir, o padrão de busca é:
o primeiro caractere é qualquer um exceto 'd',
seguido por duas letras 'x'.
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[^d]xx/g, '!');
Como resultado, o seguinte será armazenado na variável:
'! ! ! dxx'
Exemplo
E agora o padrão de busca é: o primeiro caractere
é 'd' ou '^', seguido por duas
letras 'x':
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[d^]xx/g, '!');
Como resultado, o seguinte será armazenado na variável:
'axx bxx ! !'
Exemplo
Você pode não remover o acento circunflexo da primeira posição, mas simplesmente escapá-lo usando uma barra invertida, e ele passará a representar a si mesmo:
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[\^d]xx/g, '!');
Como resultado, o seguinte será armazenado na variável:
'axx bxx ! !'
Problemas práticos
Dada a string:
let str = '^xx axx ^zz bkk @ss';
Escreva uma expressão regular que encontre strings seguindo o padrão: acento circunflexo ou arroba, e então duas letras latinas.
Dada a string:
let str = '^xx axx ^zz bkk @ss';
Escreva uma expressão regular que encontre strings seguindo o padrão: NÃO é acento circunflexo e nem arroba, e então duas letras latinas.
Dada a string:
let str = '^xx axx ^zz bkk';
Escreva uma expressão regular que encontre strings seguindo o padrão: não é acento circunflexo e nem espaço, e então duas letras latinas.