Python 正在自动转义从文件读取的换行文字
我正在自定义PythonVM上构建一个汇编程序 我使用正则表达式来解析一个汇编平面文件,在这里我需要能够表示换行符 在平面文件中,该行将如下所示:Python 正在自动转义从文件读取的换行文字,python,regex,string,escaping,Python,Regex,String,Escaping,我正在自定义PythonVM上构建一个汇编程序 我使用正则表达式来解析一个汇编平面文件,在这里我需要能够表示换行符 在平面文件中,该行将如下所示: 行。BYT'\n' 而正则表达式: ((?[a-zA-Z0-9]+)\s+(?[a-zA-Z]+)\s+(?-P(-[0-9]+)|'(.{1,2})) 正则表达式工作正常-除了当它点击该换行符时返回\\n而不是\n 我已尝试使用替换来清除值: ipdb> ch '\\n' ipdb> ch.replace(r'\\', r'\'
行。BYT'\n'
而正则表达式:
((?[a-zA-Z0-9]+)\s+(?[a-zA-Z]+)\s+(?-P(-[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'
ipdb>ch
“\\n”
ipdb>ch.replace(r'\\',r'\')
***SyntaxError:扫描字符串文字时下线(,第1行)
ipdb>ch.replace(“\\\\”,“\\\”)
“\\n”
如何获得内存中表示的原始换行符?如果一行文本包含一个
\
字符,后跟一个n
,那么当repr
'd将其与\n
区分开来时,它看起来就像\\n
。例如:
>>> a = "\\n"
>>> len(a)
2
>>> print a
\n
>>> a
'\\n'
>>> a[0]
'\\'
>>> len(a[0])
1
如果要将\
+n
替换为换行符chr(10)
,则可以非常轻松地执行此操作:
>>> a = "\\n"
>>> a
'\\n'
>>> b = a.replace("\\n", "\n")
>>> b
'\n'
>>> len(a)
2
>>> len(b)
1
>>> ord(b)
10