2020年5月23日 / 58次阅读 / 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条留言
前一篇:Trailing Whitespace带来的问题
后一篇:正则表达式中的\b和\w
Ctrl+D 收藏本页
©Copyright 麦新杰 Since 2019 Python笔记
argparse模块,从命令行获取的字符串就是raw string,此时可能会有一个困扰,如果是一个希望换行的字符串输入,raw string就比较麻烦。echo命令通过-e参数来让转义有效。 [ ]