2、词法分析--4、字面值--1、字符串和字节串
1、字符串和字节串
1.1 描述
两种串值都使用成对单引号或双引号来表示首尾,也可以使用三引号来表示。
1.2 字符串的转义
反斜杠 (\
) 字符被用来对特殊含义的字符进行转义。
1.3 字节字符串
字符串带有前缀 'b'
或 'B'
。字节串只能包含ASCII字符,字节对应数值在128以内。
1.4 原始字符串
字符串带有前缀 'r'
或 'R'
。原始字符串中的反斜杠会被当做字面字符来处理。
1.5 格式化字符串
字符串前缀带有 'f'
或 'F'
。
'f'
可与 'r'
连用,但不能与 'b'
或 'u'
连用,因此存在原始格式化字符串,但不存在字节字符串。
1.6 转义序列
转义序列 | 意义 | 注释 |
---|---|---|
\newline |
反斜杠加换行全被忽略 | |
\\ |
反斜杠 (\ ) |
|
\' |
单引号 (' ) |
|
\" |
双引号 (" ) |
|
\a |
ASCII 响铃 (BEL) | |
\b |
ASCII 退格 (BS) | |
\f |
ASCII 进纸 (FF) | |
\n |
ASCII 换行 (LF) | |
\r |
ASCII 回车 (CR) | |
\t |
ASCII 水平制表 (TAB) | |
\v |
ASCII 垂直制表 (VT) | |
\ooo |
八进制数 ooo 码位的字符 | (1,3) |
\xhh |
十六进制数 hh 码位的字符 | (2,3) |
1.6.1 仅在字节字符串中可用的转义序列
转义序列 | 意义 | 注释 |
---|---|---|
\N{name} |
Unicode 数据库中名称为 name 的字符 | (4) |
\uxxxx |
16位十六进制数 xxxx 码位的字符 | (5) |
\Uxxxxxxxx |
32位16进制数 xxxxxxxx 码位的字符 | (6) |
1.6.2 注释
- 与标准 C 一致,接受最多三个八进制数码。
- 与标准 C 不同,要求必须为两个十六进制数码。
- 在字节串字面值中,十六进制数和八进制数转义码以相应数值代表每个字节。在字符串字面值中,这些转义码以相应数值代表每个 Unicode 字符。
- 在 3.3 版更改: 加入了对别名 1 的支持。
- 要求必须为四个十六进制数码。
- 此方式可用来表示任意 Unicode 字符。要求必须为八个十六进制数码。
2、通用转义序列
转义序列 | 意义 | 注释 |
---|---|---|
\newline |
反斜杠加换行全被忽略 | |
\\ |
反斜杠(\ ) |
|
\' |
单引号(' ) |
|
\" |
双引号(" ) |
|
\a |
ASCII响铃(BEL) | |
\b |
ASCII退格(BS) | |
\f |
ASCII进纸(FF) | |
\n |
ASCII换行(LF) | |
\r |
ASCII回车(CR) | |
\t |
ASCII水平制表(TAB) | |
\v |
ASCII垂直制表(VT) | |
\ooo |
八进制ooo码位字符 | |
\xhh |
十六进纸hh码位字符 |
转载请声明https://www.cnblogs.com/wdzn/