gpt4 book ai didi

regex - 将用户输入转换为正则表达式

转载 作者:行者123 更新时间:2023-12-04 19:10:45 25 4
gpt4 key购买 nike

我正在开发一个项目,其中用户输入一个人类可读的搜索字符串
AND OR 运算符。
我举三个例子

  • a AND (b OR c) -> (?=.\ba\b)(?=.(\bb\b)|(\bc\b)).*
  • a OR (b AND c)
  • (a 或 b) 与 (c 或 d)

  • 以上是我可能得到的输入样本。
    我想获取该输入并将其转换为正则表达式。
    这不是编译器的示例吗?看着它,我明白了
    我想要做的是转换一个高级命令
    进入低级别。你有什么建议吗
    我怎么能做到以上几点?我想要的是,通过
    正则表达式生成到 jsoup(伪选择器:matchesOwn)
    并查询一个 html 文档。
    感谢您的帮助。

    最佳答案

    这样做的一般方法是以易于遍历的数据结构的形式进行中间表示。这通常称为 AST。如果您不熟悉这个概念,请查看 calculator-ast它对计算器语言进行了这种转换。

    为了将用户输入的字符串转换为 AST,您需要使用解析器。你可以看看antlr。我个人用的是v3,v4好像不太成熟。看看antlr3.org .如果你想自己编写解析器,你可以给一个 pratt parser一枪。这不是微不足道的,结合良好的错误处理需要时间,但它可以是一个有趣的练习。

    一旦你有了一个 AST,通过遍历 AST 并在你进行时输出字符,将它变成一个正则表达式应该是微不足道的。

    祝你好运!

    关于regex - 将用户输入转换为正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15448892/

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