Erhöhen ich diesen Code bekam:Manipulation Seltsamkeit String, wenn Hinter einstelligen
myString = 'blabla123_01_version6688_01_01Long_stringWithNumbers'
versionSplit = re.findall(r'-?\d+|[[email protected]#$%^&*()_+.,<>{}]+|\W+?', myString)
for i in reversed(versionSplit):
id = versionSplit.index(i)
if i.isdigit():
digit = '%0'+str(len(i))+'d'
i = int(i) + 1
i = digit % i
versionSplit[id]=str(i)
break
final = ''
myString = final.join(versionSplit)
print myString
, die nur die letzte Ziffer von der Saite gegeben erhöhen annehmen. Aber wenn Sie diesen Code ausführen, werden Sie sehen, dass, wenn dieselbe Zeichenfolge in der Zeichenfolge wie die letzte vorhanden ist, diese nach und nach erhöht wird, wenn Sie das Skript weiterhin ausführen. Kann mir jemand helfen, herauszufinden, warum?
Vielen Dank im Voraus für jede Hilfe
'id' ist ein Python-Wort reserviert, es für etwas anderes ändern – heltonbiker
Die Linie' id = versionSplit.index (die übrigens auf Ihre Frage nicht in engem Zusammenhang steht) (i) 'findet das erste Vorkommen, nicht das letzte, wie Sie beabsichtigen –