0

私は持っている

String content= "<a data-hovercard=\"/ajax/hovercard/group.php?id=180552688740185\">
                 <a data-hovercard=\"/ajax/hovercard/group.php?id=21392174\">"

"group.php?id=" と の間のすべての ID を取得したい"\""

例: 180552688740185

これが私のコードです:

String content1 = "";
Pattern script1 = Pattern.compile("group.php?id=.*?\"");
Matcher mscript1 = script1.matcher(content);
while (mscript1.find()) {
    content1 += mscript1.group() + "\n";
}

しかし、何らかの理由で機能しません。

アドバイスをいただけますか?

4

1 に答える 1

2

.*?を一致させるために使用するのはなぜですかid.*?すべての文字に一致します。を確認するだけですdigits。だから、ただ使って\\dください。

idまた、 をキャプチャしてから印刷する必要があります。

// To consider special characters as literals
String str = Pattern.quote("group.php?id=") + "(\\d*)";

Pattern script1 = Pattern.compile(str);
// Your matcher line
while (mscript1.find()) {
    content += mscript1.group(1) + "\n";   // Capture group 1 contains your id
}
于 2012-10-15T14:55:42.777 に答える