forked from toml-lang/toml
-
Notifications
You must be signed in to change notification settings - Fork 42
4.1.3.字符串
龙腾道 edited this page Sep 30, 2021
·
1 revision
※ TOML 0.4 开始不再允许对
/
使用\/
转义写法
※ TOML 0.5 开始将字符串禁止直接包含的控制字符的范围,扩大至包含 U+007F
※ TOML 1.0 开始允许基础字符串、多行基础字符串中包括 Tab
※ TOML 1.0 开始,规定两种多行字符串均可以两个以内的引号结尾,而在此之前,这会造成字符串提前终止而构成语法错误
-
基础字符串
※ TOML 0.3 开始支持用
\UXXXXXXXX
来表示 UCS-4,同时开始限定\uXXXX
和\UXXXXXXXX
的值必须是完整、有效的 Unicode 码点(0000
—D7FF
,E000
—0010FFFF
)^ " ( [^\\"\x00-\x1F\x7F] | \t | \\( [\\"btnfr] | u[0-9A-Fa-f]{4} | U[0-9A-Fa-f]{8} ) )* " $
-
多行基础字符串(TOML 0.3 新增)
※ 开始标记后如果紧跟换行,那么这个换行会被剔除
※ 用
\
来转义换行时,这个\
连同后面紧跟的所有换行、空格和 Tab 都会被剔除(TOML 0.5 开始,允许\
和换行之间存在空格;TOML 1.0 将支持扩大至 Tab)※ 规范没有规定被保留的换行符最终会作为什么字符存在,而只是说“解析器可以相对灵活地解析成对所在平台有效的换行字符”,这意味着如果你希望精确地指定最终得到的换行符,而你的解析器又没有给出明确的约定或选项,那么你可能需要使用
\n
之类的转义写法^ """ ( [^\\"\x00-\x1F\x7F] | \t | \\( [\\"btnfr] | u[0-9A-Fa-f]{4} | U[0-9A-Fa-f]{8} ) | (\\[ \t]*)?\r?\n | ""? )* """ $
-
字面量字符串(TOML 0.3 新增)
^ ' ( [^'\x00-\x1F\x7F] | \t )* ' $
-
多行字面量字符串(TOML 0.3 新增)
※ 规范没有规定被保留的换行符最终会作为什么字符存在,而只是说“解析器可以相对灵活地解析成对所在平台有效的换行字符”,这意味着如果你希望精确地指定最终得到的换行符,而你的解析器又没有给出明确的约定或选项,那么你可能需要使用基础字符串或多行基础字符串,以便使用其中的转义写法
^ ''' ( [^'\x00-\x1F\x7F] | \t | \r?\n | ''? )* ''' $
© 2022 龙腾道