字符串前的r

2020年5月23日 / 36次阅读 / Last Modified 2020年5月23日
re模块字符串

在python中,字符串前的r表示raw,即这是一个raw string。raw string的意思是,此字符串中的 \n \b \r ... 等转义符号,就不进行转义了。(\b\r可以实现字符界面的原地打印

>>> print(r'abcd\n1234')
abcd\n1234
>>> print('abcd\n1234')
abcd
1234

不转义后,转义符号就变成了2个字符。

特别注意的是,在正则表达式中,有一些符号和转义符号相同,因此要在正则表达式前加上r,不做转义,维持其原有的在正则表达式中的含义。

>>> re.search('\bpynote[.]net\b', 'pynote.net')  # no match
>>> re.search(r'\bpynote[.]net\b', 'pynote.net')
<re.Match object; span=(0, 10), match='pynote.net'>

如果没有前面的r,正则表达式中的\b就不知道是啥了...

-- EOF --

本文链接:https://www.pynote.net/archives/1959

留言区

《字符串前的r》有1条留言

电子邮件地址不会被公开。 必填项已用*标注

  • 麦新杰

    argparse模块,从命令行获取的字符串就是raw string,此时可能会有一个困扰,如果是一个希望换行的字符串输入,raw string就比较麻烦。echo命令通过-e参数来让转义有效。 [回复]


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top