[英]Morphia saving regular expression in the database?
使用Morphia(通过PlayFramework 1.2.7)执行正存储在Mongo(2.6)中的正则表达式时遇到问题
本质上,我有一个包含字符串字段的模型(下面和下面):
@Entity("rules")
public class Rule {
public String urlRule; // regular expression
}
然后,我进行了单元测试:
@Test
public void testRule() {
Rule r = Rule.findById(ID);
assertNotNull(r);
final String urlToTest = "/foo/bar?q=1";
Pattern pattern = Pattern.compile(r.urlRule);
assertTrue(pattern.matcher(urlToTest).matches());
}
现在,对于示例URL,我知道该字符串确实匹配,但是上述测试失败。
如果我通过以下方式更改测试,则可以通过:
String regex = "\\/foo\\/bar\\?q=(.*)";
Pattern pattern = Pattern.compile(regex);
因此,我基本上只是对正则表达式进行硬编码,它会通过,但是如果我使用保存在数据库中的值,则正则表达式将永远无法工作。
显然,我无法将正则表达式硬编码为变量,我必须将其存储在数据库中。 我将正则表达式存储为的数据类型是否缺少某些内容?
我有种感觉,我只是想念一些明显的东西,而我一直盯着它看了太久了。 任何帮助将不胜感激。
在进一步研究之后,我应该在这里进一步看一下,Morphia通过转义转义的字符串来保存正则表达式,因此存储的内容不正确。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.