java 和 java 脚本中从数据库中检索正则表达式不同

Retriving regular expression from database is different in java and javascript

我的数据库中有一条记录:\w{3}_\d{5}

当我将该记录检索到 java 字符串时,它按原样出现:\w{3}_\d{5}

然而,当我将那个 java 字符串分配给 Java 脚本变量时,它看起来如下: w{3}_d{5} 即没有反斜杠

所以如果我将它保存到数据库中 \w{3}_\d{5}

总结以上内容——我需要一个正则表达式在(客户端和服务器)上运行,我看到的唯一解决方案是将正则表达式另存为 \w{3}_\d{5} 并读取额外的反斜杠java 边。

为什么 Java脚本会丢失反斜杠?解决这个问题的最佳方法是什么?

一个解决方案可以是

\w{3}_\d{5}  ===> [a-zA-Z0-9_]{3}_[0-9]{5}

Apache Commons Lang has a class with string escape functions suitable for different languages. The class is called StringEscapeUtils 并且有静态方法 String = escapeJava(String).


旧版本的库有一个 escapeJavaScript 方法,但希望 escapeJava 也能正常工作。