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

news2024/11/15 13:34:08

文章目录

  • 一、前言
  • 二、正则表达式与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')  # 输出:💙

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每天学习一个Linux命令之gunzip

每天学习一个Linux命令之gunzip 在Linux系统中&#xff0c;有许多强大且常用的命令&#xff0c;其中之一是gunzip。gunzip命令用于解压缩.gz文件&#xff0c;它是gzip的伴生命令之一。本篇博客将详细介绍gunzip命令及其可用的选项&#xff0c;以帮助您更好地理解和使用这个命令…

运放设计选型中关注的参数-运算放大器选型参数

1、直流增益&#xff08;AVD&#xff09; 直流增益是运放最重要一个属性之一&#xff0c;其定义为输出电压的变化与输入电压变化之比值&#xff0c;通常用V/mV表示这个比值&#xff0c;例如&#xff0c;增益为30000&#xff0c;可表示为30V/mV&#xff0c;有些地方也会把增益用…

实践航拍小目标检测,基于轻量级YOLOv7tiny开发构建无人机航拍场景下的小目标检测识别分析系统

关于无人机相关的场景在我们之前的博文也有一些比较早期的实践&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a; 《deepLabV3Plus实现无人机航拍目标分割识别系统》 《基于目标检测的无人机航拍场景下小目标检测实践》 《助力环保河道水质监测&#xff0c;基于yolov…

搜索旋转排序数组[中等]

优质博文IT-BLOG-CN 一、题目 整数数组nums按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums在预先未知的某个下标k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为[nums[k], nums[k1], ..., nums[n-…

AI蠕虫病毒威胁升级,揭示AI安全新危机

一组研究人员成功研发出首个能够通过电子邮件客户端窃取数据、传播恶意软件以及向他人发送垃圾邮件的AI蠕虫&#xff0c;并在使用流行的大规模语言模型&#xff08;LLMs&#xff09;的测试环境中展示了其按设计功能运作的能力。基于他们的研究成果&#xff0c;研究人员向生成式…

HTML+CSS+JS:日夜交替

效果演示 实现了一个简单的日夜交替效果的动画。页面中包含了太阳、月亮和海洋的元素&#xff0c;通过切换按钮可以切换页面的主题&#xff0c;从白天切换到黑夜&#xff0c;或者从黑夜切换到白天。 Code <div class"btn-box"><div class"sunBtn"…

Docker将本地的镜像上传到私有仓库

使用register镜像创建私有仓库 [rootopenEuler-node1 ~]# docker run --restartalways -d -p 5000:5000 -v /opt/data/regostry:/var/lib/registry registry:2[rootopenEuler-node1 ~]# docker images REPOSITORY TAG IMAGE…

【数据结构与算法】常见排序算法(Sorting Algorithm)

文章目录 相关概念1. 冒泡排序&#xff08;Bubble Sort&#xff09;2. 直接插入排序&#xff08;Insertion Sort&#xff09;3. 希尔排序&#xff08;Shell Sort&#xff09;4. 直接选择排序&#xff08;Selection Sort&#xff09;5. 堆排序&#xff08;Heap Sort&#xff09;…

【代码】Android|判断asserts下的文件存在与否,以及普通文件存在与否

作者版本&#xff1a;Android 11及以上 主要是发现网上没有完整的、能跑的代码&#xff0c;不知道怎么回事&#xff0c;GPT给我重写的。我只能保证这个代码尊嘟能跑&#xff0c;不像其他的缺胳膊少腿的。 asserts 贴一下结果&#xff1a; boolean isAssertFileExists(String …

CNN-LSTM-Attention混合神经网络归时序预测的MATLAB实现(源代码)

CNN-LSTM-Attention介绍&#xff1a; CNN-LSTM-Attention混合神经网络是一种结合了卷积神经网络&#xff08;CNN&#xff09;、长短期记忆神经网络&#xff08;LSTM&#xff09;和注意力机制&#xff08;Attention&#xff09;的模型。这种混合神经网络结合了CNN对空间特征的提…

云畅科技携手飞腾打造智慧园区信创低代码综合解决方案

01 方案概述 随着国家对信创产业的日益重视与大力支持&#xff0c;信创行业的产业化进程正在不断加快。智慧园区&#xff0c;作为信创产业蓬勃发展的核心载体与战略平台&#xff0c;正日益凸显其重要性。与此同时&#xff0c;在政策引导和市场需求的双重驱动下&#xff0c;智慧…

【LeetCode】升级打怪之路 Day 12:单调队列

今日题目&#xff1a; 239. 滑动窗口最大值 | LeetCode 今天学习了单调队列这种特殊的数据结构&#xff0c;思路很新颖&#xff0c;值得学习。 Problem&#xff1a;单调队列 【必会】 与单调栈类似&#xff0c;单调队列也是一种特殊的数据结构&#xff0c;它相比与普通的 que…

CP AUTOSAR之SPI Handler/Driver详细说明

本文遵循autosar标准&#xff1a;R22-11 1 简介及功能概述 SPI 提供对通过 SPI 总线连接的设备进行读取和写入的服务。它为多个用户提供对 SPI 通信的访问&#xff08;例如 EEPROM、看门狗、I/O ASIC&#xff09;。它还提供配置片上 SPI 外设所需的机制。   该规范描述了单片…

安装 node 错误的配置环境变量之后使用 npm 报错

安装 node 错误的配置环境变量之后使用 npm 报错 node:internal/modules/cjs/loader:1147 throw err; ^ Error: Cannot find module ‘F:\ACodeTools\Node\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js’ at Module._resolveFilename (node:internal/modules/cjs/loa…

【计算机网络】HTTPS 协议原理

https 一、HTTPS 是什么二、加密1. 加密概念2. 加密的原因3. 常见的加密方式&#xff08;1&#xff09;对称加密&#xff08;2&#xff09;非对称加密 三、数据摘要(数据指纹)四、HTTPS 的工作原理探究1. 只使用对称加密2. 只使用非对称加密3. 双方都使用非对称加密4. 非对称加…

springboot239华府便利店信息管理系统

华府便利店信息管理系统 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本华府便利店信息管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在…

C语言冒泡排序(高级版)

目录: 冒泡排序的原理 主函数 "冒泡排序函数" 比较函数 交换函数 最终输出 完整代码 冒泡排序的原理: 冒泡排序的原理是&#xff1a;从左到右&#xff0c;相邻元素进行比较。每次比较一轮&#xff0c;就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右…

Python实现BIAS工具判断信号:股票技术分析的工具系列(4)

Python实现BIAS工具判断信号&#xff1a;股票技术分析的工具系列&#xff08;4&#xff09; 介绍算法解释 代码rolling函数介绍完整代码data代码BIAS.py 介绍 在股票技术分析中&#xff0c;BIAS&#xff08;乖离率&#xff09;是一种常用的技术指标&#xff0c;用于判断股票价…

unity学习(45)——选择角色菜单——客户端处理服务器的数据

1.已知客户端ReceiveCallBack中已经收到来自服务器返回的数据包。 2.问题是客户端MessageManager中的Update并没有拆解该数据包 &#xff0c;因该是因为脚本没有挂载。 挂在SelectMenu场景中的Camera上即可。 挂载后成功达到目地 其中Update中的List是一个起到全局效果的static…