示例:
"abcdef\"gh"
解析器规范声明该字符串以"
开头,以"
结尾。但它也应该忽略像\"
编写解析器时,处理这种情况的最佳方法是什么?
我想要回顾一下,如果前一个字符是\
,我就会忽略这句话。但这是最好的方法吗?因为它对我来说似乎有点可疑
答案 0 :(得分:1)
可以向后扫描,但很棘手,因为您可能有一些转义字符序列:
"This is a backslash: \"\\\""
向前解析通常比向后解析更容易。一个简单的正则表达式将双引号字符串的内容与转义匹配:
([^"]|\\.)*
但这只会帮助您识别字符串的内容。在实践中,您通常希望解释字符串的内容,其中可能包括将\n
更改为换行符,甚至将\u00D1
更改为utf-等转换。 8 Ñ
的序列(C3 91)。