我正在尝试使用Python正则表达式和反向引用实现字符串转义,并且它似乎并不想很好地工作。我确定这是我做错的事情,但我不知道该怎么办...>>> import re>>> mystring = r"This is \n a test \r">>> p = re.compile( "\\\\(\\S)" )>>> p.sub( "\\1", mystring )'This is n a test r'>>> p.sub( "\\\\\\1", mystring )'This is \\n a test \\r'>>> p.sub( "\\\\1", mystring )'This is \\1 a test \\1'我想用\ [char]替换\\ [char],但是Python中的反向引用似乎没有遵循它们在我使用过的所有其他实现中所遵循的相同规则。有人可以照亮吗?
3 回答

慕桂英4014372
TA贡献1871条经验 获得超13个赞
我的想法是,我将读取一个转义的字符串,然后对其进行转义(Python缺少的一项功能,首先您不需要使用正则表达式)。不幸的是,我没有被反斜杠所欺骗...
另一个说明性示例:
>>> mystring = r"This is \n ridiculous"
>>> print mystring
This is \n ridiculous
>>> p = re.compile( r"\\(\S)" )
>>> print p.sub( 'bloody', mystring )
This is bloody ridiculous
>>> print p.sub( r'\1', mystring )
This is n ridiculous
>>> print p.sub( r'\\1', mystring )
This is \1 ridiculous
>>> print p.sub( r'\\\1', mystring )
This is \n ridiculous
我想要打印的是
This is
ridiculous
添加回答
举报
0/150
提交
取消