我想定义一个解析器,它接受除了PetitParserDart['(', ')', '{', '}']
之外的任何字符的任何字符。
我试过了:
char('(').not() & char(')').not() & char('{').not() & char('}')
我不确定它是否正确,是否有任何简单的方法可以做到这一点?(类似chars('(){}').neg()
)?
我想定义一个解析器,它接受除了PetitParserDart['(', ')', '{', '}']
之外的任何字符的任何字符。
我试过了:
char('(').not() & char(')').not() & char('{').not() & char('}')
我不确定它是否正确,是否有任何简单的方法可以做到这一点?(类似chars('(){}').neg()
)?
这匹配任何内容,但插入符号后列出的字符除外^
。它是没有列出的所有字符的字符类:
pattern('^(){}');
这也有效(注意.not()
最后一个字符上的 ,以及any()
实际使用该字符的 ):
char('(').not() & char(')').not() & char('{').not() & char('}').not() & any()
这个也有效:
anyIn('(){}').neg()
这相当于:
(anyIn('(){}').not() & any()).pick(1)
另一种选择是:
(char('(') | char(')') | char('{') | char('}')).neg()
除了第二个示例,所有示例都返回解析后的字符(这很容易解决,但我想与您的问题保持密切联系)。第一个示例可能是最容易理解的,但根据上下文,您可能更喜欢其中一种选择。