Qual é o significado de (^ |) ABC (| $) como um REGEX estendido?

0

Eu vim aqui através do comando grep -E '(^ |) ABC (| $)' file1 Estou confuso sobre como interpretar a expressão regular, porque eu conheço o caractere ^ e $ como significante de início e fim, mas aqui eles não estão no começo nem no fim por causa do colchete, ^ às vezes é usado para negar um conjunto de caráter, mas eu vi esse uso apenas em [^ ....] como expressão.

Alguém poderia explicar passo a passo o significado desse regex?

    
por Abdul Al Hazred 24.02.2015 / 16:50

1 resposta

3

Isso significa que grep deve procurar por ABC string apenas no começo da linha OR depois do espaço, além disso, essa string tem que terminar com outro espaço OU o fim da linha.

Em outras palavras, alguém queria pesquisar por strings que formam todas as palavras . No entanto, este regexp tem muitos problemas, ou seja, pode haver muitos outros caracteres antes e depois de word (pelo menos em linguagem natural), ou seja, ( , ) , . , ; , : , , , ... , etc.

Assim, é melhor usar a opção -w de grep ou, alternativamente, jogar com limites: \b ou \< / \> .

    
por 24.02.2015 / 17:20