Domanda

Sto cercando di ottenere notepad ++ per regex trovare tutte le istanze di " abc " e "def" nella seguente frase:

  

L'ABC è andato alla def.

Nessuna delle seguenti sintassi sembra funzionare:

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

NOTA: " [a | d] " corrisponde a qualsiasi istanza di " a " o " d " quando ho provato

È stato utile?

Soluzione

Aggiorna a Notepad ++ v6. Dal log delle modifiche: " PCRE (espressioni regolari compatibili Perl) è supportato. & Quot; Ho verificato che | funziona nella ricerca regex quando si utilizza Notepad ++ v6.

Altri suggerimenti

Non è niente di speciale in " più lungo di un carattere " ;, Notepad ++ non supporta il | personaggio in regex. Neanche "a | d" lavori. Vedi la pagina di aiuto di regex . La versione 6.1.1 di Notepad ++ ora supporta | .

Suggerirei di utilizzare un editor con una corretta implementazione regex come gvim o UltraEdit .

All'interno di una dichiarazione del set di caratteri ( […] ) solo i caratteri \ , ] e - sono caratteri speciali con le funzioni speciali di fuga dal carattere successivo, chiusura della dichiarazione del set di caratteri e marcatura di un intervallo di caratteri (solo se non scritto all'inizio o alla fine), rispettivamente. Qualsiasi altro personaggio è interpretato come un personaggio semplice.

Anche il tuo | in [a | d] significa che [a | d] descrive uno dei caratteri a , | o d e non solo a o d come a | d .

Stavo avendo lo stesso problema, ed è così che sono arrivato qui. Dal momento che è un difetto di notepad ++, possiamo accontentarci usando Powershell. Nel tuo caso, esegui semplicemente Select-String:

`ss abc,def filename`

Se su Unix hai ovviamente altri strumenti come grep.

Riconosco che volevi una soluzione per Notepad ++, e anch'io, ma a volte devi accontentarti.

Il | dovrebbe funzionare ora.
Grazie al miglioramento Regex in Notepad ++

abc | def

(abc) | (DEF)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top