Regex: come cancellare il testo dopo un simbolo in tutte le righe
Oggi dovevo trovare il modo di cancellare tutte le stringhe a destra di un certo simbolo (in realtà due simboli ||).
Era una stringa del genere:
“contenuto1 || contenuto2”
A me interessava tenere solo la stringa:
“contenuto1 ||”
Ecco la formula magica:
E cioè:
- in Trova: (?-s)(?<=\|\|).*
- in Sostituisci con: (vuoto)
- in Tipo di ricerca: Espressione regolare
Ti spiego in breve la mia espressione regolare:
- La prima parte dell’espressione (?-s) è un modificatore, che costringe il motore regex a interpretare il carattere regex punto (.) come se stesse per un singolo carattere standard (non i caratteri di fine riga)
- L’ultima parte dell’espressione .* cerca di far corrispondere qualsiasi intervallo, anche vuoto, di caratteri standard
- La parte centrale (?<=\|\|) è una una condizione che deve essere vera per una corrispondenza complessiva. Questa condizione implica che l’intervallo di caratteri corrispondente deve essere preceduto da una barra verticale letterale ( | ), che, a sua volta, deve essere preceduta da un \, perché | il carattere è il simbolo regex per l’alternanza (o). E, a causa della casella sostituisci con vuota, questo intervallo di caratteri, situato dopo il | carattere, viene semplicemente cancellato.
Buona espressione regolare a tutti!
Lascia un Commento
Vuoi partecipare alla discussione?Sentitevi liberi di contribuire!