REGEX - Eliminare tutto quello compreso tra due parole
Ciao,
sto cercando un modo per cancellare del testo compreso da una determinata parola fino all'inizio di un'altra, es: UPDATE pass SET stato = -3, descr_stato = 'Scartata' WHERE pratica = '1458' AND stato = 0 AND anno IN (2016, 2017, 2018); UPDATE pass SET stato = -3, descr_stato = 'Scartata' WHERE pratica = '2383' AND stato = 0 AND anno IN (2020); In questo caso vorrei cancellare tutto quello che va da "SET" a "WHERE" (escluso) è possibile? Grazie, CJ |
Puoi usare la regex
SET(.*?)WHERE Con flag "g" e "s" e sostituire con WHERE https://regex101.com/r/qEmUG1/1 Non ho capito se vuoi cancellare anche SET, comunque basta modificare la stringa con cui sostituire i match. |
|
No ok sto capendo solo adesso :D , hai sostituito il tutto direttamente con "WHERE"
Ma c'è un modo di dire di cercare anche su linee diverse, nel caso non sia disponibile la voce . matches new line? Purtroppo mi capita spesso di usare altri software dove questa opzione non è disponibile. |
Sì si può, esplicitando i caratteri "line terminator" (li ho presi da regex101, nello schemino di destra dove spiega il significato della regex, è nella descrizione del punto):
SET((.|[\r\n\u2028\u2029])*?)WHERE Vedi esempio aggiornato dove ho rimosso il flag s: https://regex101.com/r/qEmUG1/3 |
Perfetto, ti ringrazio molto, gentilissimo! :)
Grazie! :) |
Tutti gli orari sono GMT +1. Ora sono le: 03:02. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.