Supponiamo che io ho una stringa con un sacco di roba casuale in esso come il seguente:Python trovare sottostringa tra alcuni personaggi utilizzando espressioni regolari e sostituire()
strJunk ="asdf2adsf29Value=five&lakl23ljk43asdldl"
E sono interessati ad ottenere la sottostringa seduto tra ' Valore = 'e' & ', che in questo esempio sarebbe' cinque '.
posso usare una regex come la seguente:
match = re.search(r'Value=?([^&>]+)', strJunk)
>>> print match.group(0)
Value=five
>>> print match.group(1)
five
Come mai match.group (0) è il tutto 'Valore = cinque' e di gruppo (1) è solo 'cinque'? E c'è un modo per me di ottenere "cinque" come unico risultato? (Questa domanda nasce da me solo avendo una conoscenza tenue regex)
Ho anche intenzione di avere effettua una sostituzione in questa stringa, quali ad esempio il seguente:
val1 = match.group(1)
strJunk.replace(val1, "six", 1)
che produce:
'asdf2adsf29Value=six&lakl23ljk43asdldl'
Considerando che ho intenzione di eseguire le due attività sopra descritte (trovando la stringa tra "Valore =" e "&", oltre a sostituire quel valore), mi chiedevo se ci sono altri modi più efficienti di cercare la sottostringa e sostituendolo nella stringa originale. Sto bene con quello che ho, ma voglio solo assicurarmi di non occupare più tempo di quello che devo essere se ci sono metodi migliori.
La risposta di Mahmoud Abelkader funzionerà anche - purché sia garantito che "=" e "&" non compariranno da nessun'altra parte in strJunk. –