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

2024-07-30 12:34:05 浏览数 (2)

一、前言

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

换页符

续行符
代码语言:javascript复制
print("这是一行
字符串")
  • 输出:这是一行字符串
换行符
代码语言:javascript复制
print("第一行n第二行") 
  • 输出:
代码语言:javascript复制
第一行
第二行
制表符
代码语言:javascript复制
print("第一列t第二列")  
  • 输出:
代码语言:javascript复制
第一列    第二列
双引号
代码语言:javascript复制
print("He said, "Python is amazing!"") 
  • 输出:He said, “Python is amazing!”

等效于:

代码语言:javascript复制
print('He said, "Python is amazing!"') 
单引号
代码语言:javascript复制
print('She said, 'I love Python!'')
  • 输出:She said, ‘I love Python!’

等效于:

代码语言:javascript复制
print("She said, 'I love Python!'")
反斜杠符号
代码语言:javascript复制
print("This is a backslash: \")
  • 输出:This is a backslash:
回车符
代码语言:javascript复制
print("HellorWorld")
  • 输出:World
退格符
代码语言:javascript复制
print("HellobWorld")  
  • 输出: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进制数对应的字符:
代码语言:javascript复制
print('101')  # 输出字符 'A'

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

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

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

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

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

  1. bin() 函数:将一个整数转换为二进制表示。
代码语言:javascript复制
print(bin(10))  # 输出 '0b1010'
  1. oct() 函数:将一个整数转换为八进制表示。
代码语言:javascript复制
print(oct(10))  # 输出 '0o12'
  1. hex() 函数:将一个整数转换为十六进制表示。
代码语言:javascript复制
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字符

代码语言:javascript复制
print("u4F60u597D")  
  • 输出:你好
uhhhh示例
代码语言:javascript复制
# 版权符号
print('u00A9')  # 输出:©

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

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

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

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

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

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

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

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

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

# 闹钟符号
print('u23F0')  # 输出:⏰
Uhhhhhhhh示例
代码语言:javascript复制
# 麻将符号
print('U0001F004')  # 输出:


	

0 人点赞