将mysql正则表达式转换为java正则表达式(和/或反之亦然)

时间:2012-01-06 04:28:46

标签: java mysql regex

我有一些正则表达式,我需要从mysql转换为java,但它们在传递给String.matches()时不起作用。

如何将mysql正则表达式转换为java正则表达式?
是否有任何API(内置或第三方)可以执行此操作?

1 个答案:

答案 0 :(得分:6)

这很简单。这是区别:

要将mysql正则表达式转换为java版,基本上将".*"添加到正则表达式的每一端,或者将其从“部分”匹配转换为完全匹配。

以下是一些示例:

爪哇

"xyz".matches("y"); // false - only matches part of the input
"xyz".matches(".*y.*"); // true
"xyz".matches("[xyz]"); // false - only matches one char, but String is 3 chars
"xyz".matches("[xyz]+"); // true

MySQL的

select 'xyz' regexp 'y'; -- 1 (ie true)
select 'xyz' regexp '.*y.*'; -- 1 (ie true)
select 'xyz' regexp '[xyz]'; -- 1 (ie true)
select 'xyz' regexp '[xyz]+'; -- 1 (ie true)