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

发布于:2024-03-04 ⋅ 阅读:(170) ⋅ 点赞:(0)

一、前言

  转义字符在处理输入输出、正则表达式、字符串拼接等场景下经常被用到,本文将介绍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编码

Character Octal Decimal Hexadecimal
3位8进制数 十进制数 2位16进制数
NUL (null) 000 0 00
SOH (start of heading) 001 1 01
STX (start of text) 002 2 02
ETX (end of text) 003 3 03
EOT (end of transmission) 004 4 04
ENQ (enquiry) 005 5 05
ACK (acknowledge) 006 6 06
BEL (bell) 007 7 07
BS (backspace) 010 8 08
HT (horizontal tab) 011 9 09
LF (line feed) 012 10 0A
VT (vertical tab) 013 11 0B
FF (form feed) 014 12 0C
CR (carriage return) 015 13 0D
SO (shift out) 016 14 0E
SI (shift in) 017 15 0F
DLE (data link escape) 020 16 10
DC1 (device control 1) 021 17 11
DC2 (device control 2) 022 18 12
DC3 (device control 3) 023 19 13
DC4 (device control 4) 024 20 14
NAK (negative acknowledge) 025 21 15
SYN (synchronous idle) 026 22 16
ETB (end of transmission block) 027 23 17
CAN (cancel) 030 24 18
EM (end of medium) 031 25 19
SUB (substitute) 032 26 1A
ESC (escape) 033 27 1B
FS (file separator) 034 28 1C
GS (group separator) 035 29 1D
RS (record separator) 036 30 1E
US (unit separator) 037 31 1F
SPACE 040 32 20
! 041 33 21
" 042 34 22
# 043 35 23
$ 044 36 24
% 045 37 25
& 046 38 26
047 39 27
( 050 40 28
) 051 41 29
* 052 42 2A
+ 053 43 2B
, 054 44 2C
- 055 45 2D
. 056 46 2E
/ 057 47 2F
0 060 48 30
1 061 49 31
2 062 50 32
3 063 51 33
4 064 52 34
5 065 53 35
6 066 54 36
7 067 55 37
8 070 56 38
9 071 57 39
: 072 58 3A
; 073 59 3B
< 074 60 3C
= 075 61 3D
> 076 62 3E
? 077 63 3F
@ 100 64 40
A 101 65 41
B 102 66 42
C 103 67 43
D 104 68 44
E 105 69 45
F 106 70 46
G 107 71 47
H 110 72 48
I 111 73 49
J 112 74 4A
K 113 75 4B
L 114 76 4C
M 115 77 4D
N 116 78 4E
O 117 79 4F
P 120 80 50
Q 121 81 51
R 122 82 52
S 123 83 53
T 124 84 54
U 125 85 55
V 126 86 56
W 127 87 57
X 130 88 58
Y 131 89 59
Z 132 90 5A
[ 133 91 5B
\ 134 92 5C
] 135 93 5D
^ 136 94 5E
_ 137 95 5F
` 140 96 60
a 141 97 61
b 142 98 62
c 143 99 63
d 144 100 64
e 145 101 65
f 146 102 66
g 147 103 67
h 150 104 68
i 151 105 69
j 152 106 6A
k 153 107 6B
l 154 108 6C
m 155 109 6D
n 156 110 6E
o 157 111 6F
p 160 112 70
q 161 113 71
r 162 114 72
s 163 115 73
t 164 116 74
u 165 117 75
v 166 118 76
w 167 119 77
x 170 120 78
y 171 121 79
z 172 122 7A
{ 173 123 7B
| 174 124 7C
} 175 125 7D
~ 176 126 7E
DEL (delete) 177 127 7F
转义字符
转义字符 描述
\ooo 3位8进制数ooo对应的字符
\xhh 2位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。这些编码方案使用不同的字节顺序和编码方式将码点翻译成计算机可以理解的二进制形式。

转义字符 描述
\uhhhh 4位16进制数hhhh表示的Unicode字符
\Uhhhhhhhh 8位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')  # 输出:💙


网站公告

今日签到

点亮在社区的每一天
去签到