我试图了解如何使用 PEG.js 在文本中进行简单的搜索/替换。当然这不是解析器的预期用途,但无论如何我很好奇这些语言背后的逻辑以产生一些搜索/替换。
我遇到的问题是很难正面定义某些定义的补充。一个例子:假设我想搜索和替换类似这样的语法:
rule = (whatever_is_not_my_syntax* m:my_syntax)+ {replace m}
word = [a-z0-9_]+
my_syntax = word "." word
whatever_is_not_my_syntax = ???
很难积极地描述whatever_is_not_my_syntax
PEG.js 中的my_syntax
内容,而不会!expression
与[^characters]
.
你能帮助我吗?如果有任何关于这个主题的书籍或参考书目,我将不胜感激。先感谢您。