Python中字符串前面我们经常看到加r(R)或u/(U)的前缀,而这两个符号是什么意思呢?

1.r(R)

r意为raw,表示不包含转义字符的原生字符串。常见的转义字符包括下列几种:

转义字符 描述
\(在行尾时) 续航符
\\ 反斜杠符号
' 单引号(字符串需要为""形式)
" 双引号(需要字符串用需要为''形式)
\b 退格(Backspace)
\000
\n 换行
\v 纵向制表符
\t 横向制表符
下面是几个转义字符的演示:
print("Hello\
,world")
# Hello,world
print("Hello\\,world")
# Hello\,world
print("Hello',world")
# Hello',world
print('Hello",world')
# Hello",world
print("Hello\b,world")
# Hell,world
print("Hello\000,world")
#Hello,world
print("Hello\n,world")
# Hello
# ,world
print("Hello\v,world")
# Hello
# ,world
print("Hello\t,world")
# Hello ,world
print("Hello\020,world")

r前缀的作用就是告诉解释器,我这个字符串不包含转义字符,比如字符串中如果包含'\n',则不将其视为换行符,而视为一个'\'字符和'n'字符来处理。如下面所示:

print("Hello,\nworld")
# Hello,
# world
print("Hello,\nworld")
# Hello,\nworld

r前缀最常见的用途是正则表达式,因为正则匹配的模式经常包含各种反斜杠等字符,我们不希望它被解析为转移字符,因此需要加上'r'。

import re
str_pat= re.compile(r'\d+/\d+/\d+')
text = 'Today is 12/10/2021, yesterday is 12/11/2021'
res = str_pat.findall(text)
print(res)
['12/10/2021', '12/11/2021']

1.u(U)

u(U)前缀表示字符串的编码方式为unicode。不仅包含中文在内的任意字符串都可以采用unicode编码。一般英文字符串在任何编码的情况下都能正常解析,所以一般不用显式添加u。然而中文最好要说明其编码,否则编码转换时就会出现乱码(比如本来用gbk编码但拿unicode来解码)。解决编码问题一劳永逸的方法是在.py的文件头添加如下内容:

# coding: utf-8

如果不加这一行,有时就会出现如下所示的编码解析错误:

SyntaxError: Non-ASCII character '\xe5' in file main.py on line 86, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

参考文献

  • [1] https://www.python.org/
  • [2] Martelli A, Ravenscroft A, Ascher D. Python cookbook[M]. " O'Reilly Media, Inc.", 2005.

Python:Python字符串中的r、u和转义字符的更多相关文章

  1. python之字符串中有关%d,%2d,%02d的问题

    python之字符串中有关%d,%2d,%02d的问题 在python中,通过使用%,实现格式化字符串的目的.(这与c语言一致) 其中,在格式化整数和浮点数时可以指定是否补0和整数与小数的位数. 首先 ...

  2. python 判断字符串中是否只有中文字符

    python 判断字符串中是否只有中文字符 学习了:https://segmentfault.com/q/1010000007898150 def is_all_zh(s): for c in s: ...

  3. python判断字符串中是否包含子字符串

    python判断字符串中是否包含子字符串 s = '1234问沃尔沃434' if s.find('沃尔沃') != -1:     print('存在') else:     print('不存在' ...

  4. python 统计字符串中指定字符出现次数的方法

    python 统计字符串中指定字符出现次数的方法: strs = "They look good and stick good!" count_set = ['look','goo ...

  5. Python 去除字符串中的空行

    Python 去除字符串中的空行 mystr = 'adfa\n\n\ndsfsf' print("".join([s for s in mystr.splitlines(True ...

  6. Python访问字符串中的值

    Python访问字符串中的值: 1.可以使用索引下标进行访问,索引下标从 0 开始: # 使用索引下标进行访问,索引下标从 0 开始 strs = "ABCDEFG" print( ...

  7. Python 访问字符串中的值

    Python 访问字符串中的值 Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用.高佣联盟 www.cgewang.com Python 访问子字符串,可以使用方括号来 ...

  8. [Python正则表达式] 字符串中xml标签的匹配

    现在有一个需求,比如给定如下数据: 0-0-0 0:0:0 #### the 68th annual golden globe awards #### the king s speech earns ...

  9. Python统计字符串中的中英文字符、数字空格,特殊字符

    # -*- coding:utf8 -*- import string from collections import namedtuple def str_count(s): '''找出字符串中的中 ...

  10. Python 在字符串中处理html 和xml

    问题: 想将HTML 或者XML 实体如&entity; 或&#code; 替换为对应的文本.再者,你需要转换文本中特定的字符(比如<, >, 或&). 解决方案: ...

随机推荐

  1. django ORM 按月分组统计

    一.搭建环境,准备数据 1.1:新建项目 django-admin startproject Test 1.2:新建app python manage.py startapp app 1.3:设置 s ...

  2. easyexcel实现导出添加文字水印

    引入jar包 由于easyexcel没有引入ooxml-schemas包,所以需要额外添加. <!-- easyexcel依赖 --> <dependency> <gro ...

  3. HDC2021技术分论坛:跨端分布式计算技术初探

    作者:zhengkai,分布式通信首席技术专家 当今的移动应用都向着智能化和多样化方向发展,例如AI辅助,VR/AR应用,沉浸式游戏等.然而现实中的移动设备,因为便携性要求受限于尺寸.电池容量以及温控 ...

  4. Keycloak中授权的实现

    在Keycloak中实现授权,首先需要了解与授权相关的一些概念.授权,简单地说就是某个(些)用户或者某个(些)用户组(Policy),是否具有对某个资源(Resource)具有某种操作(Scope)的 ...

  5. k8s 深入篇———— k8s 的本质[四]

    前言 简单整理一下k8s的本质. 正文 首先,Kubernetes 项目要解决的问题是什么? 编排?调度?容器云?还是集群管理? 实际上,这个问题到目前为止都没有固定的答案.因为在不同的发展阶段,Ku ...

  6. 重新整理数据结构与算法(c#)—— 树的节点删除[十八]

    前言 你好这里的一个删除,指的是如果删除的叶子节点则直接删除,如果删除的是非叶子节点,则删除的是这颗子树. 这样删除的场景并不多,这种删除方式了解即可. 十七和十六没有放树图,把树图放一下. 正文 节 ...

  7. 第四章:if else switch使用

    /* * @Issue: 输入整数a和b,若a²+b²大于100,则输出a²+b²之和的百位以上的数字,否则直接输出a²+b²的和 * @Author: 一届书生 * @LastEditTime : ...

  8. pid循迹小车的实现,arduino

    帮我写一个Arduino循迹小车的程序,小车前面有并列8个红外发射接收传感器,每个红外发射接收传感器为1cm宽,地面循迹的线是大约2cm宽黑色的线,地面其他位置是白色的,要求循迹小车运行的速度快,使用 ...

  9. C++ 构造函数实战指南:默认构造、带参数构造、拷贝构造与移动构造

    C++ 构造函数 构造函数是 C++ 中一种特殊的成员函数,当创建类对象时自动调用.它用于初始化对象的状态,例如为属性分配初始值.构造函数与类同名,且没有返回值类型. 构造函数类型 C++ 支持多种类 ...

  10. 技术解读 | 智能开放搜索CTR预估模型

    ​简介:本文介绍开放搜索CTR预估模型在个性化排序中的应用与实践 如何评价搜索排序效果? 搜索是用户触达信息最简单直接的方式,是APP.网页必备的功能.如何评价并提升搜索效果一直是搜索领域的常见问题. ...