[英]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.