2012-05-04 15 views
1

私は現在、それがSSLから来たかどうかを判断するためにHTTP起源に関するテストをやってる:matches()でjava正規表現をエスケープする必要がありますか?

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

しかし、私はそれが動作していない見つけることです。 matches()の正規表現のような文字列をエスケープする必要がありますか、それともhttps://のように置くことができますか?簡単な文字列のマッチングを行う方法はありますか?

RegExテスターhttp://www.regexplanet.com/advanced/java/index.htmlを使用しても驚くべきことに私はどこにも行きません。ありがとう。

答えて

3

Javaの正規表現に区切り文字は必要ありません。単純に実行します。最後に、したがって入力文字列全体、.*を検証一致する

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

注意を。そして、入力が改行文字(.ますない試合)が含まれている場合、DOT-ALLを有効にします。クーゼの

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

を、あなたはまた、単に行うことができます:

プレーンを取り
.startsWith("https://") 

を文字列(正規表現パターンなし)。どのようにこの正規表現について

+0

ああで働く

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

、私はそれが間違って近づいていた考え出し:)ありがとうございます! – crockpotveggies

+0

あなたは@DeLongeを歓迎します。 –

0

:それはあなたのテスター私が見

+1

これは正当なJava文字列としてコンパイルされません。キャプチャグループには意味がありません。 'matches'は常に文字列全体をチェックするので、明示的には意味がありません。 –

関連する問題