Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正在自动转义从文件读取的换行文字_Python_Regex_String_Escaping - Fatal编程技术网

Python 正在自动转义从文件读取的换行文字

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'\'

我正在自定义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'\')
*** 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