Ich habe eine Liste der Fehlercodes und einer dieses Codes ist:Behandelt Python^als Leerzeichen in split()?
Dial code generated note %d on stn ^char, cct %d^cct_chk^cct_chk
keine Begriffe, die ein %
, ^
oder $
Symbol enthalten eine Variable ist, und ich brauche diese gesamten variablen Bedingungen mit <*>
zu ersetzen.
So sollte die obige Zeile wie folgt aussehen:
Dial code generated note <*> on stn <*> cct <*>
Um dies zu tun, habe ich geschrieben:
message = "Dial code generated note %d on stn ^char, cct %d^cct_chk^cct_chk"
for term in message.split():
if '^' in term:
message = message.replace(term, '<*>')
if '$' in term:
message = message.replace(term, '<*>')
if '%' in term:
message = message.replace(term, '<*>')
print (message)
Für die meisten Nachrichten dieses gearbeitet zu haben scheint. Aber für dieses Beispiel erhalte ich:
>>Dial code generated note <*> on stn <*> <*> <*>^<*>_chk^<*>_chk
Es scheint, als ob es die ^
wie ein Leerzeichen zu behandeln, da sonst der gesamte letzte Begriff sollte mit <*>
ersetzt wurde. Kann mir jemand sagen, warum das ist?
Sie haben bereits Ersetzt alle '% d's durch' <*> ', so dass du zu dem Zeitpunkt, an dem du zu dieser letzten Zeit kommst, nicht mehr das hast, was du in der Split-Version hast. Kurze Antwort: Nein, ist es nicht. Aber Ihre Ausgabe stimmt nicht ganz mit dem Code überein, den Sie gepostet haben. – jonrsharpe
Ah ok. Weißt du, wie ich es in diesem Fall beheben würde, so gibt es mir die Ausgabe, nach der ich suche? –
Unter Verwendung Ihres Beispielcodes erhalte ich 'Vorwahlcode erzeugte Anmerkung <*> auf Stn <*> cct <*>^cct_chk^cct_chk 'Ausgabe, die von Ihrer Beispielausgabe unterschiedlich ist. –