2011-08-18 16 views
5

私はこのコードを持っていますが、動作していないようです。Java正規表現が一致しませんか?

Pattern pattern=Pattern.compile("IMGURSESSION=([0-9a-zA-Z]*);"); 
Matcher matcher=pattern.matcher("IMGURSESSION=blahblah; path=/; domain=.imgur.com"); 
System.out.println(matcher.matches()); 

誰でも知っていますか?

+0

。それは私が[RegexBuddy](http://www.regexbuddy.com/)でテストしたときに機能しました。 –

+1

私はそれを知っています。私はそれが動作することを知っている十分な正規表現を知っている。そしてRegexBuddy - 40ドル!無邪気な!私はちょうどhttp://gskinner.com/RegExr/に固執する – Isaac

答えて

8

Matcher#matches()メソッドは、の入力シーケンス全体とをパターンと照合しようとします。

あなたの目的はIMGURSESSIONを抽出することであると仮定すると、
Pattern.compile("IMGURSESSION=([0-9a-zA-Z]*);.*$"); //true 
Pattern.compile("IMGURSESSION=([0-9a-zA-Z]*);"); //false 
+0

Mmmは、全体の順序、感謝と一致したか分からなかった。 – Isaac

1

import java.util.regex.*; 

Pattern pattern = Pattern.compile("IMGURSESSION=([0-9a-zA-Z]*);.*"); 
Matcher matcher = pattern.matcher("IMGURSESSION=blahblah; path=/; domain=.imgur.com"); 
if (matcher.find()) { 
    System.out.println(matcher.group(1)); 
} 

ちょうどあなたが「マッチャ」セマンティクスを満たすために最後に試合にすべてのパターンを入れて作ります。

2

これは、入力文字列全体と一致するメソッドです。

サブシーケンスと一致する場合は、find()メソッドを使用できます。マッチャと一致する

3種類の方法は、Javaのドキュメントで説明されています:正規表現自体には何も問題はありません http://download.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html

関連する問題