以下代码
text = QuotedString(quoteChar="(", endQuoteChar=")", escChar="\\")
text.leaveWhitespace()
def test_hex_with_backslashN_code(self):
self.assertEqual(text.parseString("(\x01\x0a)")[0], "(\x01\x0a)")
触发异常:
ParseException: Expected quoted string, starting with ( ending with ) (at char 0), (line:1, col:1)
因为 "\x0a" 十六进制值被解释为 '\n' 并且即使使用 leaveWhitespace 调用也不会被视为普通字符。
我也尝试过使用 SkipTo 但我没有设法处理转义的内括号,例如:
"( I am \( John \))"
使用解析器
text = "(" + SkipTo(")")
知道如何解决/解决这个问题吗?