0

BetClicこの文字列からテキストを抽出しようとしていますpopup_siteinfo(this, '/click/betclic', '373', 'BetClic', '60€');

Regex Testerで動作する単純な正規表現を作成しましたが、Javaでは動作しません。

これが正規表現です

'\d+', '(.*?)'

これがJavaの出力です

Exception in thread "main" java.lang.IllegalStateException: No match found
at java.util.regex.Matcher.group(Matcher.java:485)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:74)
Java Result: 1

これが私のコードです

Pattern pattern = Pattern.compile("'\\d+', '(.*?)'");
Matcher matcher = pattern.matcher(onMouseOver);                
System.out.print(matcher.group(1));

onMouseOver文字列はpopup_siteinfo(this, '/click/betclic', '373', 'BetClic', '60€');

私は正規表現の専門家ではありませんが、私のものはまったく間違っていないと確信しています。

提案?

4

2 に答える 2

3

find() あなたは前 に電話する必要がありますgroup(...)

Pattern pattern = Pattern.compile("'\\d+', '(.*?)'");
Matcher matcher = pattern.matcher(onMouseOver);                
if(matcher.find()) {
  System.out.print(matcher.group(1));
}
else {
  System.out.print("no match");
}
于 2013-02-18T20:49:38.023 に答える
0

group(1)最初に一致する操作 ( など) を呼び出さずに呼び出しています。find()これが .- の原因ですIllegalStateException

そして、置換のためにそのグループ化されたケースを使用する必要がある場合、$1を使用しているだけであれば、これは必要ありませんreplaceAll()

于 2013-02-18T20:58:59.957 に答える