2015-01-17 3 views
1

나는 \x00\x13\xa2\[email protected]\n!\x1c 원하는 출력 내가 \ 다음 사람을 제외하고 대문자로 모든 문자를 변경하여이 작업을 수행 할 필요가 '\x00\x13\xA2\[email protected]\n!\x1C'백 슬래시 다음을 제외하고 대문자로 모든 문자를 변환

다음과 같은 8 비트 16 진수 문자열입니다했다

나는 모자에 전체 문자열을하고 N의와 X의 소문자하지만 지금까지 0123을 출력 이상적인

import re 
mysourceaddrlong = (repr(data['source_addr_long'])[1:-1]) 

에서 제작하여이 작업을 수행하려

mysourceaddrlongUPPERCASE = mysourceaddrlong.upper() 
    mysourceaddrlongFIXED = re.sub('[XN]+', lambda m: m.group(0).lower(), mysourceaddrlongUPPERCASE) 
+0

시도해 보셨습니까? 그렇다면 일부 코드를 추가하십시오 :) –

+0

이것은 XBee와 어떤 관련이 있습니까? 아니면 "16 진수"로, 전혀? –

+1

'mysourceaddrlong = \ x00 \ x13 \ xa2 \ x00 @ \ n! \ x1c' 아니 파이썬 형제 –

답변

5

이 경우 RegEx가 필요하지 않습니다. 당신이 원하는 경우에 당신이

편집

앞에 \ 추가 당신은 조인과 발전기 식을 결합 str 기능

>>> mysourceaddrlong = r"\x00\x13\xa2\[email protected]\n!\x1c" 
>>> "\\".join([(i[0]+i[1:].upper()) for i in mysourceaddrlong.split('\\') if i]) 
'x00\\x13\\xA2\\[email protected]\\n!\\x1C' 

을 사용할 수 있습니다, 그것은 밖으로 작동합니다 그래서

예 :

str = 'x00\\x13\\xA2\\[email protected]\\n!\\x1C' # what you get 
str = "\\"+str 
,
+0

닫지 만 여전히 대문자 인 N은 풀지 못합니다. –

+0

이 기능이 제대로 작동합니까? 당신은 mysourceaddrlong이 아닌 일을하고 있습니다. –

+0

대답에서 얻은 결과를 얻지 못했다고 생각합니다. –

관련 문제