.NET ersetzen von nicht-druckbaren ASCII-string-Darstellung von hex-code
Ich habe einen string mit einigen nicht-druckbaren ascii-Zeichen, so etwas wie:
"ABCD\x09\x05\r\n"
Möchte ich ersetzen Sie diese Zeichen mit einem ascii-string den hex-code-Nummern, so bekomme ich so etwas wie dieses:
"ABCD[09][05][0D][0A]"
Was ist der beste Weg, dies zu tun? Kann ein regex verwendet werden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Muster
\p{Cc}
passt auf jedes der Zeichen, sowäre auch ersetzen steuerzeichen.
Sorry, keine compiler praktisch, aber ich denke, diese kompiliert und macht den job.
Auch, diese Art von Wanderungen der string zweimal (einmal zu Projekt jedes Zeichen einen hex-Ersatz oder ein string, und dann wieder zu aggregieren), und Sie können dies vermeiden, indem lumping die Projektion in den Aufruf
Enumerable.Aggregate
, aber das ist mehr klar, und es wahrscheinlich egal, dass viel, es sei denn, dies ist performance-kritisch.Aggregate
🙂 würd ich persönlich drücken Sie die select-Funktion in eine lokale delegieren, tho, für die Lesbarkeit.Aggregate
stattString.Join
?Inspiriert durch Jason ' s Beispiel, aber ein bisschen einfacher. Ich bin mir nicht sicher, welche besser abschneidet, und nicht die Zeit haben, um benchmark es jetzt, aber es sollte alles in nur einem Durchgang:
Ich habe getestet dieses für die Funktionalität.