gpt4 book ai didi

java - SQL正则表达式到Java正则表达式的转换器

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

我正在构建一个 API,需要将 SQL 正则表达式转换为 Java 正则表达式。该正则表达式专门用于 MySQL 中的 REGEXP 关键字。

我的问题是:是否有任何库或 git-hub 存储库可以随时实现此目的?

SQL 查询:

SELECT company 
FROM business
WHERE title REGEXP '^[ABCD]';

在MySQL中输入正则表达式:^[ABCD]Java 中的输出正则表达式:[A-D]*

我在互联网上搜索了很多,但找不到一个可以做到这一点。有什么建议我可以如何解决这个问题。

最佳答案

为什么你认为^[ABCD]应该翻译成[A-D]*?根据https://dev.mysql.com/doc/refman/8.0/en/regexp.html#regexp-syntax , ^ 和Java中的意思一样,[ABCD]是一个字符类,在Java中也可以这样写。 [A-D] 在 Java 和 MySQL 正则表达式中也是合法的,并且具有相同的含义。因此 ^[ABCD] 的翻译将是...^[ABCD]

没有人可能专门编写一个用于在这两种方言之间进行翻译的库;有关更通用的工具,请参阅 Tool to convert regex between different language syntaxes?Free alternative to RegexBuddy .

或者您可以自己编写它:该页面中 Java 不支持的唯一语法似乎是 [= =],它要求您知道要使用哪种排序规则。因此,您可以编写一个方法来查找 [= =] 部分(使用正则表达式),并根据您所需的排序规则将它们替换为完整的等价类。这并不意味着每个模式都会在每个字符串上给出相同的结果;请参阅“正则表达式兼容性注意事项”,地址:https://dev.mysql.com/doc/refman/8.0/en/regexp.html和“Java 正则表达式的差异”,地址:http://userguide.icu-project.org/strings/regexp针对您需要处理的问题类型。

关于java - SQL正则表达式到Java正则表达式的转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55118679/

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