Ricerca…


Osservazioni

Regex101 definisce la funzionalità \ K come:

\K reimposta il punto iniziale della corrispondenza riportata. Tutti i personaggi consumati in precedenza non sono più inclusi nella partita finale

La sequenza di escape \K è supportata da diversi motori, linguaggi o strumenti, come ad esempio:

... e (finora) non supportato da:

  • .NETTO
  • awk
  • bash
  • GNU
  • ICU
  • Giava
  • Javascript
  • Notepad ++
  • Objective-C
  • POSIX
  • Pitone
  • Qt / QRegExp
  • sed
  • Tcl
  • vim
  • XML
  • XPath

Cerca e sostituisci usando l'operatore \ K

Dato il testo:

foo: bar

Vorrei sostituire qualsiasi cosa seguendo "foo:" con "baz", ma voglio mantenere "foo:". Questo potrebbe essere fatto con un gruppo di cattura come questo:

s/(foo: ).*/$1baz/

Quale risulta nel testo:

pippo: baz

Esempio 1

oppure potremmo usare \K , che "dimentica" tutto ciò che ha precedentemente abbinato, con uno schema come questo:

s/foo: \K.*/baz/

L'espressione regolare corrisponde a "pippo:" e poi incontra il \K , i caratteri di corrispondenza precedenti sono dati per scontati e lasciati dalla regex, il che significa che solo la stringa corrispondente a .* sarà sostituita da "baz", dando come risultato il testo:

pippo: baz

Esempio 2



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow