有必要在matches()中转义java正则表达式吗?

时间:2012-05-04 19:14:30

标签: java

我目前正在对HTTP Origin进行测试,以确定它是否来自SSL:

(HttpHeaders.Names.ORIGIN).matches("/^https:\\/\\//")

但我发现它不起作用。我是否需要像正则表达式一样转义matches()字符串,还是可以将其保留为https://?有没有办法进行简单的字符串匹配?

似乎这是一个简单的问题,但令人惊讶的是,即使在使用RegEx测试人员http://www.regexplanet.com/advanced/java/index.html后,我也无法到达任何地方。感谢。

2 个答案:

答案 0 :(得分:3)

Java的正则表达式不需要分隔符。只需:

.matches("https://.*")

请注意,匹配验证整个输入字符串,因此最后验证.*。如果输入包含换行符(.匹配),则启用DOT-ALL:

.matches("(?s)https://.*")

当然,您也可以这样做:

.startsWith("https://")

采用普通字符串(无正则表达式)。

答案 1 :(得分:0)

这个正则表达式怎么样:

"^(https:)\/\/.*" 

适用于您的测试人员