繁体   English   中英

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

[英]Converter for SQL Regular expression to Java regular expression

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

我的问题是:是否有任何可用的库或git-hub回购来实现这一目标?

SQL查询:

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

MySQL中的输入正则表达式: ^[ABCD] Java中的输入正则表达式: [AD]*

我在互联网上进行了很多搜索,但找不到一个可以做到这一点。 关于如何解决这个问题的任何建议。

您为什么认为^[ABCD]应该翻译成[AD]* https://dev.mysql.com/doc/refman/8.0/en/regexp.html#regexp-syntax^表示相同的Java, [ABCD]是可写入以相同的方式在字符类在Java中。 [AD]在Java和MySQL正则表达式中也是合法的,并且具有相同的含义。 因此^[ABCD]的翻译将是... ^[ABCD]

尤其是没有人会写出一个库来在这两种方言之间进行翻译。 有关更多常规工具,请参见在不同语言语法之间转换正则表达式的工具? RegexBuddy的免费替代品

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM