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