0

我在 Java 中有一个模式匹配代码,它从数据库中获取模式当我使用 mysql 数据库做 JUnit 时,一切都变得非常酷

Original Pattern in database 
[a-zA-Z]{1}[0-9]{2}[a-zA-Z]{3}[0-9]{5}_[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}\\.csv
Mysql is retruning as expected and as it's stored.
Oracle is returning with extra backslashes 
[a-zA-Z]{1}[0-9]{2}[a-zA-Z]{3}[0-9]{5}_[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}\\\\.csv

为什么它返回不同。在我使用休眠来获取数据之间。

4

1 回答 1

1

在 MySQL 中,\是字符串的转义字符,但在 Oracle 中并非如此。这意味着此插入对它们中的每一个都有不同的作用:

INSERT INTO PATTERNS (ID, VALUE) VALUES (1, '\\\\');

这将插入\\MySQL 但\\\\在 Oracle 中。如果只想\\在 Oracle 中插入,则必须将插入更改为:

INSERT INTO PATTERNS (ID, VALUE) VALUES (1, '\\');
于 2012-12-14T09:16:31.000 回答