问个关于raw string的问题

2013-02-18 20:32:07 +08:00
 frogs
不知道有没有便捷的将string 转换成raw string的方法
比如:将正则表达式"\d+(123)\s" 转换成 等同于r'\d+(123)\s'效果的raw string
3421 次点击
所在节点    Python
7 条回复
frogs
2013-02-18 21:29:01 +08:00
额 人工置顶 跪求解答 m(_ _)m
keakon
2013-02-18 22:19:51 +08:00
>>> `"\d+(123)\s"`
"'\\\\d+(123)\\\\s'"
>>> repr("\d+(123)\s")
"'\\\\d+(123)\\\\s'"

这个?
reorx
2013-02-18 22:26:37 +08:00
不需要转换呀

>>> '\d+(123)\s' is r'\d+(123)\s'
True
clowwindy
2013-02-18 22:47:51 +08:00
>>> codecs.decode(r'a\n','string_escape')
'a\n'
>>> codecs.encode(r'a\n','string_escape')
'a\\\\n'
frogs
2013-02-18 23:05:22 +08:00
@keakon 我sb了,本来想问的是怎么把 字符串里面正则字符变成普通字符,
"\d+(123)\s" 变成 r"\\d\+\(123\)\\s"这种
keakon
2013-02-18 23:49:42 +08:00
>>> print re.escape('\d+(123)\s')
\\d\+\(123\)\\s

这个?
frogs
2013-02-18 23:58:11 +08:00
@keakon 非常感谢,我得去扒一扒escape的src了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/60660

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX