La mia espressione regolare corrisponde troppo. Come posso dirlo per abbinare il più piccolo schema ansible?

Ho questo RegEx:

('.+') 

Deve corrispondere a caratteri letterali come in C. Ad esempio, se ho 'a' b 'a' dovrebbe corrispondere agli a e agli intorno a loro.

Tuttavia, corrisponde anche alla b (non dovrebbe), probabilmente perché è, strettamente parlando, anche tra “s”.

Ecco uno screenshot di come va male (lo uso per l’evidenziazione della syntax):
immagine dello schermo

Sono abbastanza nuovo per le espressioni regolari. Come posso dire che la regex non corrisponde a questo?

Essere avidi e abbinare il primo apostrofo e l’ultimo e tutto il resto.

Questo dovrebbe corrispondere a tutto ciò che non è un apostrofo.

 ('[^']+') 

Un’altra alternativa è provare partite non avide.

 ('.+?') 

Hai provato una versione non golosa, ad es. ('.+?') ?

Di solito ci sono due modalità di corrispondenza (o due serie di quantificatori), massima (ingorda) e minima (non-golosa). Il primo risulterà nella partita più lunga ansible, la seconda nel più breve. Puoi leggere a riguardo (anche se in contesto perl) nel Ricettario Perl (Sezione 6.15).

Provare:

 ('[^']+') 

I mezzi includono ogni carattere tranne quelli tra parentesi quadre. In questo modo, non corrisponde a 'a' b 'a' perché c’è un ' in mezzo, quindi invece darà entrambe le istanze di 'a'

Hai bisogno di sfuggire ai qutoes:

 \'[^\']+\' 

Edit: Hmm, suppongo che questa risposta dipenda dal lang / sistema che stai usando.