首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用\\t,\\n替换像\n \t等的转义字符

问用\\t,\\n替换像\n \t等的转义字符
EN

Stack Overflow用户
提问于 2016-01-07 12:33:22
回答 1查看 1.2K关注 0票数 0

我试图在python中编写正则表达式,希望用\n、\t等转义字符替换为\\n、\\t等。

我试过这样做只是为了逃避换行符和标签。

代码语言:javascript
复制
re.sub(r'\t',r'\\t',re.sub(r'\n',r'\\n',text))

例:

代码语言:javascript
复制
>>> print re.sub(r'\t',r'\\t',re.sub(r'\n',r'\\n','ads;lfkjaldsf\ndsklajflad\tkjhklajf\n'))
ads;lfkjaldsf\ndsklajflad\tkjhklajf\n

假设我有文本,比如"\a\b\c\d\n\g\h\t",那么它不需要向非转义字符添加双反斜杠。

所以在这里,我不需要用双反斜杠来转义每个反斜杠,而是用双反斜杠来转义每个特殊的转义字符。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-07 13:00:13

我发现了re.escape,正如Karoly指出的。这就是它的工作原理。

代码语言:javascript
复制
>>> re.escape('ads;lfkjaldsf\ndsklajflad\tkjhklajf\n')
'ads\\;lfkjaldsf\\\ndsklajflad\\\tkjhklajf\\\n'

更新:

当我看到re.escape逃跑的时候太多了。空格,分号和许多字符在我的情况下不需要转义。

代码语言:javascript
复制
>>> re.sub(r'(\n|\t|\"|\')',lambda m:{'\n':'\\n','\t':'\\t','\'':'\\\'','\"':'\\\"'}[m.group()], "hello hi  \n \'GM\' \t TC  \n \"Bye\" \t")
'hello hi  \\n \\\'GM\\\' \\t TC  \\n \\"Bye\\" \\t'

这就是我想出的真正有用的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34655254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档