Como você usa o tubo de regex Notepad ++ | para cadeias mais longas do que um personagem?

StackOverflow https://stackoverflow.com/questions/820740

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu estou tentando obter o Notepad ++ para regex encontrar todas as ocorrências de "abc" e "def" na seguinte frase:

O ABC foi para a def.

Nenhum dos seguintes sintaxes parecem funcionar:

  • abc | def
  • [abc | def]
  • (ABC) | (def)
  • (abc | def)

NOTA: "[a | d]" corresponde a qualquer instância de "a" ou "d" quando eu testei

Foi útil?

Solução

Atualize para v6 Notepad ++. Desde o changelog: "PCRE (Perl Compatible Regular Expressions) é suportado." Eu tenho verificado que | obras em busca regex ao usar v6 Notepad ++.

Outras dicas

Não é nada de especial sobre "mais do que um personagem", Notepad ++ não suporta o | personagem em regex. Nem mesmo "a | d" obras. Consulte o regex ajuda página . versão 6.1.1 do Notepad ++ agora suporta |.

Eu sugiro usar um editor com uma implementação de regex adequado como gvim ou UltraEdit .

Dentro de uma declaração conjunto de caracteres ([…]) apenas os caracteres \, ] e - são caracteres especiais com as funções especiais de escapar o carácter seguinte, fechando a declaração conjunto de caracteres e marcação de um intervalo de caracteres (apenas se não está escrito no início ou final), respectivamente. Qualquer outro caractere é interpretet como um personagem simples.

Assim é o seu | em [a|d] o que significa que [a|d] descreve qualquer um dos personagens a, | ou d e não apenas a ou d como a|d faz.

Eu estava tendo o mesmo problema, que é como eu aterrei aqui. Desde que é uma deficiência notepad ++, nós podemos fazer fazer usando o PowerShell. No seu caso, basta executar um Select-String:

`ss abc,def filename`

Se no Unix, então você tem outras ferramentas como grep é claro.

Eu reconheço que você queria uma solução para o Notepad ++, e eu também, mas às vezes você tem que fazer fazer.

A | deve funcionar agora.
Graças à melhoria Regex em Notepad ++

abc | def

(ABC) | (def)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top