Lark 解析器预定义了一些常见的终端,包括一个字符串。定义如下:
_STRING_INNER: /.*?/
_STRING_ESC_INNER: _STRING_INNER /(?<!\\)(\\\\)*?/
ESCAPED_STRING : "\"" _STRING_ESC_INNER "\""
我明白_STRING_INNER
。我也明白ESCAPED_STRING
是怎么组成的。但我真的不明白的是_STRING_ESC_INNER
。
如果我正确阅读了正则表达式,它只是说,每当我找到两个连续的文字反斜杠时,它们之前一定不能有另一个文字反斜杠?
如何将这两者组合成一个正则表达式?
并且不要求语法只允许字符串数据中的转义双引号吗?