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