Python正则表达式实现字符串转义

我正在尝试使用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中的反向引用似乎没有遵循它们在我使用过的所有其他实现中所遵循的相同规则。有人可以照亮吗?


扬帆大鱼
浏览 216回答 3
3回答

慕桂英4014372

我的想法是,我将读取一个转义的字符串,然后对其进行转义(Python缺少的一项功能,首先您不需要使用正则表达式)。不幸的是,我没有被反斜杠所欺骗...另一个说明性示例:>>> mystring = r"This is \n ridiculous">>> print mystringThis 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python