Quais são alguns cenários práticos para usar o símbolo regex +?

0

Então, acho que sei o que o símbolo RegEx + faz (procura pelo caractere anterior 1 ou mais vezes). Eu acho que tenho como usá-lo ...

echo "This is a good sentence." | awk '/go+d/ {print $0}'

(encontra bom, gooood, gooooooood)

Mas, estou tendo dificuldades em encontrar uma razão prática e objetiva para querer procurar por esse tipo de repetição. Eu preciso de cenários para dar ao seu propósito algum contexto para explicação para os outros.

Obrigado por me ajudar e por me deixar apoiar em seus conhecimentos e experiências.

    
por dlowrie290 10.10.2017 / 04:09

2 respostas

4

Você está pensando em caracteres individuais quando descobrir que + é muito mais útil em classes de personagens ...

  • Espaços em branco: \s+
  • Caracteres não numéricos: [^0-9]+
  • Uma palavra: \w+
  • string não vazia: .+
  • Etc.

Exemplos práticos devem ser bastante fáceis de se pensar com isso. Talvez eu queira encontrar apenas linhas que tenham texto recuado: ^\s+\S . Ou talvez eu queira encontrar todas as linhas não vazias: ^.+$ . Eu posso chegar a mais se você precisar deles. ;)

    
por 10.10.2017 / 04:42
3

Aqui está uma instância real de danos causados pelo uso de * em vez de + (principalmente porque OP não percebeu que eles acabariam usando expressões regulares em vez de curingas): Por que esse comando excluiu todos os pacotes?

Arguments to apt-get install and apt-get remove are extended regular expressions, not shell wildcards; wine* means win followed by any number of e, and since this can match any part of the package name, this means any package whose name contains win as a substring.

O OP executou sudo apt-get remove wine* , acabou removendo a maioria dos pacotes instalados em seu sistema. wine+ , por outro lado, teria removido pacotes com wine .

    
por 10.10.2017 / 04:44