是否需要在matches()中转义java正则表达式?

是否需要在matches()中转义java正则表达式?,java,Java,我目前正在对HTTP源进行测试,以确定它是否来自SSL: (HttpHeaders.Names.ORIGIN).matches("/^https:\\/\\//") 但我发现它不起作用了。我需要像正则表达式一样转义matches()字符串,还是可以像https://那样保留它?有没有办法进行简单的字符串匹配 看起来这将是一个简单的问题,但令人惊讶的是,即使在使用了正则表达式测试仪之后,我仍然一事无成。谢谢。Java的正则表达式不需要分隔符。简单地做: .matches("https://.*"

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

(HttpHeaders.Names.ORIGIN).matches("/^https:\\/\\//")
但我发现它不起作用了。我需要像正则表达式一样转义
matches()
字符串,还是可以像
https://
那样保留它?有没有办法进行简单的字符串匹配


看起来这将是一个简单的问题,但令人惊讶的是,即使在使用了正则表达式测试仪之后,我仍然一事无成。谢谢。

Java的正则表达式不需要分隔符。简单地做:

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

.matches("(?s)https://.*")
当然,你也可以简单地做:

.startsWith("https://")
它采用普通字符串(无正则表达式模式)。

这个正则表达式如何:

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

它在您的测试仪中工作

这甚至不能编译为合法的Java字符串。捕获组中没有点,显式中也没有点,因为
匹配总是检查整个字符串。