【自然语言处理】NLP入门(三):1、正则表达式与Python中的实现(3):字符转义符及进制转换

文章目录

  • 一、前言
  • 二、正则表达式与Python中的实现
    • 1.字符串构造
    • 2. 字符串截取
    • 3. 字符串格式化输出
    • 4. 字符转义符
      • a. 常用字符转义符
        • 续行符
        • 换行符
        • 制表符
        • 双引号
        • 单引号
        • 反斜杠符号
        • 回车符
        • 退格符
      • b. ASCII编码
        • 转义字符
        • 进制转换
          • 2 进制
          • 8 进制
          • 10 进制
          • 16 进制
          • 进制转换函数
      • c. Unicode字符
        • `\uhhhh`示例
        • `\Uhhhhhhhh`示例

一、前言

  转义字符在处理输入输出、正则表达式、字符串拼接等场景下经常被用到,本文将介绍python中的字符转义符。

二、正则表达式与Python中的实现

1.字符串构造

2. 字符串截取

【自然语言处理】NLP入门(一):1、正则表达式与Python中的实现(1):字符串构造、字符串截取

3. 字符串格式化输出

【自然语言处理】NLP入门(二):1、正则表达式与Python中的实现(2):字符串格式化输出(%、format()、f-string)

4. 字符转义符

  字符转义符是在编程语言中使用的特殊符号,用于表示一些特殊的字符或者具有特殊含义的字符,在很多编程语言中,特定的字符前面加上反斜杠 \ 就构成了一个转义字符。

a. 常用字符转义符

  在Python中,常用的字符转义符包括:

转义字符描述
\(行尾)续行符
\n换行符
\t横向制表符
\v纵向制表符
\"双引号
\’单引号
\\一个反斜杠符号\
\r回车符
\b退格符
\f换页符
续行符
print("这是一行\
字符串")
  • 输出:这是一行字符串
换行符
print("第一行\n第二行") 
  • 输出:
第一行
第二行
制表符
print("第一列\t第二列")  
  • 输出:
第一列    第二列
双引号
print("He said, \"Python is amazing!\"") 
  • 输出:He said, “Python is amazing!”

等效于:

print('He said, "Python is amazing!\"') 
单引号
print('She said, \'I love Python!\'')
  • 输出:She said, ‘I love Python!’

等效于:

print("She said, 'I love Python!'")

在这里插入图片描述

反斜杠符号
print("This is a backslash: \\")
  • 输出:This is a backslash: \
回车符
print("Hello\rWorld")
  • 输出:World
退格符
print("Hello\bWorld")  
  • 输出:HellWorld

b. ASCII编码

CharacterOctalDecimalHexadecimal
3位8进制数十进制数2位16进制数
NUL (null)000000
SOH (start of heading)001101
STX (start of text)002202
ETX (end of text)003303
EOT (end of transmission)004404
ENQ (enquiry)005505
ACK (acknowledge)006606
BEL (bell)007707
BS (backspace)010808
HT (horizontal tab)011909
LF (line feed)012100A
VT (vertical tab)013110B
FF (form feed)014120C
CR (carriage return)015130D
SO (shift out)016140E
SI (shift in)017150F
DLE (data link escape)0201610
DC1 (device control 1)0211711
DC2 (device control 2)0221812
DC3 (device control 3)0231913
DC4 (device control 4)0242014
NAK (negative acknowledge)0252115
SYN (synchronous idle)0262216
ETB (end of transmission block)0272317
CAN (cancel)0302418
EM (end of medium)0312519
SUB (substitute)032261A
ESC (escape)033271B
FS (file separator)034281C
GS (group separator)035291D
RS (record separator)036301E
US (unit separator)037311F
SPACE0403220
!0413321
"0423422
#0433523
$0443624
%0453725
&0463826
0473927
(0504028
)0514129
*052422A
+053432B
,054442C
-055452D
.056462E
/057472F
00604830
10614931
20625032
30635133
40645234
50655335
60665436
70675537
80705638
90715739
:072583A
;073593B
<074603C
=075613D
>076623E
?077633F
@1006440
A1016541
B1026642
C1036743
D1046844
E1056945
F1067046
G1077147
H1107248
I1117349
J112744A
K113754B
L114764C
M115774D
N116784E
O117794F
P1208050
Q1218151
R1228252
S1238353
T1248454
U1258555
V1268656
W1278757
X1308858
Y1318959
Z132905A
[133915B
\134925C
]135935D
^136945E
_137955F
`1409660
a1419761
b1429862
c1439963
d14410064
e14510165
f14610266
g14710367
h15010468
i15110569
j1521066A
k1531076B
l1541086C
m1551096D
n1561106E
o1571116F
p16011270
q16111371
r16211472
s16311573
t16411674
u16511775
v16611876
w16711977
x17012078
y17112179
z1721227A
{1731237B
|1741247C
}1751257D
~1761267E
DEL (delete)1771277F
转义字符
转义字符描述
\ooo3位8进制数ooo对应的字符
\xhh2位16进制数hh对应的字符
  1. 使用 \ooo 表示3位8进制数对应的字符:
print('\101')  # 输出字符 'A'

\101 表示八进制数 101,对应的字符是 ‘A’。

  1. 使用 \xhh 表示2位16进制数对应的字符:
print('\x41')  # 输出字符 'A'

\x41 表示十六进制数 41,对应的字符是 ‘A’。

进制转换
2 进制
  • 使用"0b"前缀来表示二进制数。
print(0b1010)
8 进制
  • 使用"0o"前缀来表示八进制数。
print(0o12) 
10 进制
  • 显然直接表示的就是十进制数
print(10)
16 进制
  • 使用"0x"前缀来表示十六进制数。
print(0x0A) 
  • 上述均输出:10
进制转换函数

  可以使用内置函数 bin()oct()hex() 来进行转换:

  1. bin() 函数:将一个整数转换为二进制表示。
print(bin(10))  # 输出 '0b1010'
  1. oct() 函数:将一个整数转换为八进制表示。
print(oct(10))  # 输出 '0o12'
  1. hex() 函数:将一个整数转换为十六进制表示。
print(hex(10))  # 输出 '0xa'

在这里插入图片描述

c. Unicode字符

  Unicode是一种字符编码方案,用于表示世界上几乎所有语言的字符,包括字母、数字、标点符号、符号、表情符号、特殊符号和控制字符等。它为每个字符分配了一个唯一的数字,称为码点(code point),用于在计算机系统中进行字符的表达。Unicode编码目前已经超过了1.1万个字符,涵盖了世界上大多数语言文字的所有字符。
  Unicode的编码空间可以分为多个平面(plane),每个平面包含65536个码位(code point)。最早的Unicode版本(Unicode 1.0)只定义了第一个平面,称为基本多文种平面(Basic Multilingual Plane,BMP),涵盖了绝大多数常用字符。除了BMP平面外,Unicode还定义了辅助平面(Supplementary Planes)。辅助平面包含了一些特殊字符,如特殊符号、古代文字、表情符号等。目前已经定义了17个辅助平面,但并不是所有的辅助平面都是完全填满的。
  Unicode字符可以通过不同的编码方案进行表示,其中最常见的是UTF-8、UTF-16和UTF-32。这些编码方案使用不同的字节顺序和编码方式将码点翻译成计算机可以理解的二进制形式。

转义字符描述
\uhhhh4位16进制数hhhh表示的Unicode字符
\Uhhhhhhhh8位16进制数hhhhhhhh表示的Unicode字符
print("\u4F60\u597D")  
  • 输出:你好
\uhhhh示例
# 版权符号
print('\u00A9')  # 输出:©

# 注册商标符号
print('\u00AE')  # 输出:®

# 音符
print('\u266B')  # 输出:♪

# 电话符号
print('\u260E')  # 输出:☎

# 和平符号
print('\u262E')  # 输出:☮

# 国际象棋符号
print('\u2656')  # 输出:♖

# 十字架符号
print('\u271D')  # 输出:✝

# 太阳符号
print('\u2600')  # 输出:☀

# 雪花符号
print('\u2744')  # 输出:❄

# 蛇座符号
print('\u265B')  # 输出:♛

# 闹钟符号
print('\u23F0')  # 输出:⏰
\Uhhhhhhhh示例
# 麻将符号
print('\U0001F004')  # 输出:🀄

# 笑脸符号
print('\U0001F604')  # 输出:😄

# 心形符号
print('\U0001F496')  # 输出:💖

# 手势符号
print('\U0001F44B')  # 输出:👋

# 花朵符号
print('\U0001F33B')  # 输出:🌻

# 月亮符号
print('\U0001F319')  # 输出:🌙

# 爱心符号
print('\U0001F499')  # 输出:💙

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/426926.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于淘宝的nodejs镜像网址更新后,前端项目出现的一系列问题解决方案。

问题 npm install&#xff0c;之前是成功的&#xff0c;最近不成功。 原因 之前的npm.taobao.org镜像源已经停用 解决方法 把所有的npm.taobao.org替换成npmmirror.com&#xff0c;这个新的淘宝镜像地址 如果使用nvm(没有忽略)需要修改如下&#xff1a; nvm node_mirror…

文字写作困扰?这6款AI写作助手帮你一键解决

有时候写作的时候我们可能会陷入创作困境&#xff0c;思绪纷乱&#xff0c;难以找到合适的表达方式。在此小编特别为大家推荐一些外非常好用的 AI 写作助手&#xff0c;帮助你克服这些问题。让我们来看看其中的6款软件&#xff1a; 1、爱制作AI写作生成器 爱制作AI主要功能是协…

第12届智能计算与无线光通信国际会议(ICWOC 2024)即将召开!

2024年第12届智能计算与无线光通信国际会议&#xff08;ICWOC 2024&#xff09;将于2024年6月21-23日在中国重庆召开。随着深度学习等人工智能技术的不断进步&#xff0c;以自动化、自治为特征的智能应用预计将激增。本届会议主题为“光通信智能链接”&#xff0c;旨在为相关技…

js script中的defer和async

在HTML中&#xff0c;<script>标签可以使用async和defer两个属性来控制外部JavaScript文件的加载和执行方式。这两个属性的目的是优化页面加载时间&#xff0c;但它们以不同的方式工作。下面是每个属性的具体说明&#xff1a; async属性 当你给<script>标签添加a…

经典思路!人参叶际微生物如何发8分文章?

中国中医科学院中药研究所在《Environmental Microbiome》期刊上(IF7.9)发表了关于叶际真菌微生态网络的文章&#xff0c;该研究通过对ITS测序结果和环境因子测定结果以及皂苷含量测定结果进行生信分析&#xff0c;提出了维持微生态网络的稳定性策略和影响皂苷含量的因素。 期刊…

还在用微信截图吗?这2个免费软件你不能错过

大家好&#xff0c;我是知微&#xff01; 说到截图&#xff0c;大家会想到哪款软件呢&#xff0c;是windows系统自带的截图软件&#xff0c;还是登录微信后按AltA触发截图功能&#xff1f; 很多人平时都在使用微信或者QQ截图&#xff0c;但是这种每次都得联网登录才能使用&am…

unity-1

创建游戏对象&#xff08;游戏物体&#xff09; 可通过unity中的菜单栏中的Gameobject创建&#xff1b;也可在Hierarchy&#xff08;层级&#xff09;中创建&#xff0c; 双击即可居中看到。 在Hierarchy空白处右键即可看到&#xff0c;能创建游戏对象。 在Scene框中&#x…

驱动开发面试复习

创建字符设备 1 创建设备号 alloc_chrdev_region 2.创建cdev cdev_init 3.添加一个 cdev,完成字符设备注册到内核 cdev_add 4.创建类 class_create 5.创建设备 device_create 1.内核空间与用户空间数据 copy_from_user 和copy_to_user 俩个函数来完成。 copy_from_user 函数…

论文阅读-高效构建检查点

论文标题&#xff1a;On Efficient Constructions of Checkpoints 摘要 高效构建检查点/快照是训练和诊断深度学习模型的关键工具。在本文中&#xff0c;我们提出了一种适用于检查点构建的有损压缩方案&#xff08;称为LC-Checkpoint&#xff09;。LC-Checkpoint同时最大化了…

C#,机器学习的KNN(K Nearest Neighbour)算法与源代码

1 K最邻近法 KNN&#xff08;K- Nearest Neighbor&#xff09;法即K最邻近法&#xff0c;最初由 Cover和Hart于1968年提出&#xff0c;是一个理论上比较成熟的方法&#xff0c;也是最简单的机器学习算法之一。该方法的思路非常简单直观&#xff1a;如果一个样本在特征空间中的…

ET系列手持如何在仓储管理精准出彩!

在仓储行业&#xff0c;公司一般依靠纸质文档来纪录和追踪出入的货品&#xff0c;以员工的记忆力来执行库房管理。这种非自动化管理方式很容易因为人为失误而造成生产率低下&#xff0c;同时也大大浪费人力资源。另外&#xff0c;伴随着货品数量的a增加和出入库房頻率的大幅度提…

模糊搜索小案例

C#窗体实现数据录入与模糊搜索小案例 记录一下 主要代码 private void button1_Click(object sender, EventArgs e){string name textBox1.Text;string hometown textBox4.Text;string school textBox6.Text;string sex textBox5.Text;string lat textBox3.Text;string …

【Git】深入理解 Git 分支合并操作:git merge dev 命令详解

深入理解 Git 合并操作&#xff1a;git merge dev 命令详解 摘要&#xff1a;本文将深入探讨 Git 中的合并操作&#xff0c;以及如何使用 git merge dev 命令将dev 分支的修改合并到当前分支&#xff08;假设当前分支为main 分支&#xff09;中。通过详细的解释和示意图&#x…

A Brief Introduction of the Violin Plot and Box Plot

DateAuthorVersionNote2024.03.03Dog TaoV1.0Release the note. 文章目录 A Brief Introduction of the Violin Plot and Box PlotBox PlotViolin PlotHistogram with Error BarComparisonExample 1Example 2 A Brief Introduction of the Violin Plot and Box Plot Box Plot …

java-幂等性

幂等性 1.1幂等性定义&#xff1a; 在计算机领域中&#xff0c;幂等&#xff08;Idempotence&#xff09;是指任意一个操作的多次执行总是能获得相同的结果&#xff0c;不会对系统状态产生额外影响。在Java后端开发中&#xff0c;幂等性的实现通常通过确保方法或服务调用的结…

智慧城市中的数字孪生:数字孪生技术助力智慧城市提高公共服务水平

目录 一、引言 二、数字孪生技术概述 三、数字孪生技术在智慧城市中的应用 1、智慧交通管理 2、智慧能源管理 3、智慧环保管理 4、智慧公共安全 四、数字孪生技术助力智慧城市提高公共服务水平的价值 五、挑战与前景 六、结论 一、引言 随着信息技术的飞速发展&…

Linux工具篇

文章目录 1.yum1.1 yum是什么&#xff1f;1.2yum下载的软件包在哪&#xff1f;1.3 yum的配置1.4 yum的相关操作 2. Vim2.1 各种模式的相关操作2.2 利用vim解决普通用户无法sudo的问题2.3 vim的配置 3.gcc/g3.1 利用gcc理解程序的翻译过程3.2 编译器的自举 4. 程序的链接4.1动态…

【推荐】免费AI论文写作神器-「智元兔 AI」

还在为写论文焦虑&#xff1f;免费AI写作大师来帮你三步搞定&#xff01; 智元兔AI是ChatGPT的人工智能助手&#xff0c;并且具有出色的论文写作能力。它能够根据用户提供的题目或要求&#xff0c;自动生成高质量的论文。 不论是论文、毕业论文、散文、科普文章、新闻稿件&…

OpenAI工作环境曝光:高薪背后的996;Quora的转变:由知识宝库至信息垃圾场

&#x1f989; AI新闻 &#x1f680; OpenAI工作环境曝光&#xff1a;高薪背后的996 摘要&#xff1a;近日&#xff0c;多位OpenAI匿名员工在求职网站Glassdoor上披露了公司的工作环境和公司文化&#xff0c;包括高薪水和优厚的福利待遇&#xff0c;但同时伴随着996的加班文化…

【大厂AI课学习笔记NO.62】模型的部署

我们历尽千辛万苦&#xff0c;总算要部署模型了。这个系列也写到62篇&#xff0c;不要着急&#xff0c;后面还有很多。 这周偷懒了&#xff0c;一天放出太多的文章&#xff0c;大家可能有些吃不消&#xff0c;从下周开始&#xff0c;本系列将正常更新。 这套大厂AI课&#xf…