gpt4 book ai didi

whitespace - 如何在 PetitParser 中创建一个空格但不是行分隔符的解析器?

转载 作者:行者123 更新时间:2023-12-03 02:54:16 26 4
gpt4 key购买 nike

有一个内置whitespace()解析器在 PetitParserDart ,它检查字符:

(9 <= value && value <= 13) || (value == 32) || (value == 160)
|| (value == 5760) || (value == 6158) || (8192 <= value && value <= 8202) || (value == 8232)
|| (value == 8233) || (value == 8239) || (value == 8287) || (value == 12288)

现在我想要一个自定义的空白解析器,它是 whitespace()解析器,但不接受行分隔符 \n .

怎么做,不想复制修改里面的代码 whitespace() .有没有更好的方法来做到这一点?

最佳答案

有多种方法可以做到这一点。

重用现有解析器的一种方法是:

char('\n').not().seq(whitespace()).pick(1);

另一种方法是创建一个新的字符模式:

pattern('\t\f\r ');

这并不完全匹配 whitespace() 的所有 unicode 空格。接受,但对于大多数用例来说可能就足够了。或者,您也可以添加 unicode 范围:

pattern('\t\f\r \u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000');

关于whitespace - 如何在 PetitParser 中创建一个空格但不是行分隔符的解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17366917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com