gpt4 book ai didi

javascript - PEG.js 允许两个标签之间的任何文本

转载 作者:行者123 更新时间:2023-11-30 20:26:46 24 4
gpt4 key购买 nike

我在定义允许两个标签(包括那些标签)之间的任何文本的表达式时遇到问题。

例子:

#ifdef
asdasdasdasdasdsasd
asdasdasdasdasdasdasd
asdasdasdasdasdasasd
#endif

它也应该允许

#ifdef
asdasdasd
asdasdsad
#ifdefasdasdasd
asdasdasd
#endif#endif
asdasdasd
asdasdasd
#endif

如您所见,只要它以#ifdef 和endif 开头和结尾,里面的任何文本都应该没问题。

谁能帮我创建这样一个表达式?

到目前为止我尝试的是:

H_IF_IGNORE 
= ("#ifdef) _
H_IF_IGNORE / (!"#endif"i SourceCharacter)*
"#endif"

但它工作得不是很好,最终会在最后一个 endif 之后消耗更多的文本。

最好的问候

最佳答案

inner 部分可以是另一个 #ifdef 或重复的 SourceCharacter,因此这两部分都需要放在括号中。

按照这些思路尝试一些事情:

H_IF_IGNORE
= "#ifdef" _*
(H_IF_IGNORE / (!"#endif" SourceCharacter))* _*
"#endif"

SourceCharacter = .

_ = [\s\n]

关于javascript - PEG.js 允许两个标签之间的任何文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50815740/

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