1

カスタム python 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'

メモリ内で表される生の改行文字だけを取得するにはどうすればよいですか?

4

1 に答える 1