사용자 정의 파이썬 VM 위에 어셈블러를 작성하는 중입니다.파일에서 읽은 개행 문자가 자동으로 이스케이프 처리됩니다.
개행 문자를 나타낼 수 있어야하는 어셈블리 평면 파일을 구문 분석하기 위해 정규 표현식을 사용하고 있습니다. 플랫 파일에서
은 같은 모양 라인은 다음과 같습니다
line .BYT '\n'
그리고 정규식 :
((?P<label>[a-zA-Z0-9]+)\s+)?((?P<type>\.[a-zA-Z]+)\s+)(?P<value>(-?[0-9]+)|'(.{1,2})')
이 정규식은 잘 작동 - 것을 제외하고을은 줄 바꿈 것을 칠 때 문자가 \n
대신 \\n
을 반환합니다.
나는 값을 청소 교체를 사용하려고했습니다
ipdb> ch
'\\n'
ipdb> ch.replace(r'\\', r'\')
*** SyntaxError: EOL while scanning string literal (<stdin>, line 1)
ipdb> ch.replace('\\\\', '\\')
'\\n'
어떻게 메모리에 표현 단지 원시 개행 문자를받을 수 있나요?