⊗pyPmREMSP 58 of 129 menu

Backreference nella stringa di sostituzione in Python

Quando si lavora con il metodo sub, se qualcosa deve essere catturato in un gruppo (backreference) nella regex, allora nella stringa di sostituzione è possibile inserire il contenuto di quel gruppo scrivendo una doppia barra rovesciata \ e il numero del gruppo. Ad esempio, \1 - primo gruppo, \2 - secondo gruppo e così via.

A cosa serve e come usarlo vediamolo con degli esempi.

Esempio

Troviamo tutti i numeri e al loro posto inseriamo questi stessi numeri, ma tra parentesi tonde. Per fare questo sostituiamo tutti i numeri trovati con loro stessi, ma tra parentesi:

txt = '1 23 456 xax' res = re.sub('(\d+)', '(\1)', txt) print(res)

Di conseguenza, nella variabile verrà scritto quanto segue:

'(1) (23) (456) xax'

Esempio

Troviamo tutte le stringhe che rappresentano numeri con delle 'x' attorno e sostituiamo questi numeri con loro stessi, ma con dei punti esclamativi '!' attorno:

txt = 'x1x x23x x456x xax' res = re.sub('x(\d+)x', '!\1!', txt) print(res)

Di conseguenza, nella variabile verrà scritto quanto segue:

'!1! !23! !456! xax'

Esempio

Risolviamo il seguente problema: data una stringa 'aaa@bbb ccc@ddd' - lettere, poi chiocciola, poi lettere. Dobbiamo scambiare le posizioni delle lettere nella sottostringa 'aaa@bbb' prima di '@' e dopo:

txt = 'aaa@bbb ccc@ddd' res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt) print(res)

Di conseguenza, nella variabile verrà scritto quanto segue:

'bbb@aaa ccc@ddd'

Problemi pratici

Data una stringa:

txt = '12 34 56 78'

Scambia le posizioni delle cifre in tutti i numeri a due cifre.

Data una stringa con una data:

txt = '31.12.2025'

Converti questa data in '2025.12.31'.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta