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}
- Java 字符串将是:
\w{3}_\d{5}
- Java 分配给 Java 脚本变量的字符串将是:
\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
也能正常工作。
我的数据库中有一条记录:\w{3}_\d{5}
当我将该记录检索到 java 字符串时,它按原样出现:\w{3}_\d{5}
然而,当我将那个 java 字符串分配给 Java 脚本变量时,它看起来如下: w{3}_d{5}
即没有反斜杠
所以如果我将它保存到数据库中 \w{3}_\d{5}
- Java 字符串将是:
\w{3}_\d{5}
- Java 分配给 Java 脚本变量的字符串将是:
\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
也能正常工作。