Per la vita di me non riesco a capirlo.Regex per abbinare una o due virgolette ma non tre di fila
ho bisogno di cercare il seguente testo, rispettando solo le citazioni in grassetto:
non corrispondono: "" "Questa è una docstring python" ""
partita: " questa è una stringa regolare "
partita: "" ← questa è una stringa vuota
Come posso farlo con un'espressione regolare?
Ecco che cosa ho provato:
non funziona:
(?!"")"(?<!"")
Vicino, ma non corrisponde virgolette doppie.
non funziona:
"(?<!""")|(?!"")"(?<!"")|(?!""")"
ho ingenuamente pensato che avrei potuto aggiungere i sostituti che non voglio ma la logica finisce invertita. Questo corrisponde a tutto perché tutte le virgolette corrispondono ad almeno una delle alternative.
(Si prega di notare:. Io non sto correndo il codice, quindi le soluzioni intorno usando __doc__
non aiuterà, io sto solo cercando di trovare e sostituire nel mio editor di codice)
Grande, grazie! In realtà, a volte ha senso avere lookheadhead prima di una partita, per escludere (o includere) possibili corrispondenze. Nel mio caso, stavo vedendo se potevo farne uso per guardare il set completo, ma non aggiungeva alcun valore. – Nicole
Mi sono appena reso conto che dovevo abbinare solo un carattere di virgoletta singolo alla volta. Per favore controlla [la mia risposta] (http://stackoverflow.com/a/20643701/143295) ... mi hai aiutato ad arrivarci. Non ho cambiato la domanda originale perché hai risposto perfettamente (e non volevo fare una nuova domanda che fosse così simile). – Nicole
@NickC Nessun problema. Speriamo che qualcun altro possa usare questa risposta un giorno. :) – h2ooooooo