通常、xmlを読み取るための正規表現はお勧めしませんが、XMLパーサーを使用したHTMLは悪夢になる可能性があります。
以下のサンプルで。
<a class="datastream-graph-value" href="http=blah" > 496</a>
<a class="other"> 496</a>
以下の正規表現を使用すると、適切に処理されます。
(class=["][^>"]*["])
その正規表現の使用方法の優れた例を示します。
http://www.vogella.com/articles/JavaRegularExpressions/article.html
コードサンプルの返信が必要な場合は、解決できないものが表示されます。
編集:
退屈だったのでサンプルをまとめてみませんか
package temp;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTestPatternMatcher {
public static final String EXAMPLE_TEST = "<a class=\"datastream-graph-value\" href=\"http=blah\" > 496</a> <a class=\"other\"> 496</a>";
public static void main(String[] args) {
Pattern pattern = Pattern.compile("(class=[\"][^>\"]*[\"])");
// In case you would like to ignore case sensitivity you could use this
// statement
// Pattern pattern = Pattern.compile("\\s+", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(EXAMPLE_TEST);
// Check all occurance
while (matcher.find()) {
System.out.print("Start index: " + matcher.start());
System.out.print(" End index: " + matcher.end() + " ");
String match = matcher.group();
match = match.replace("class=", "");
System.out.println(match);
}
// Now create a new pattern and matcher to replace whitespace with tabs
Pattern replace = Pattern.compile("\\s+");
Matcher matcher2 = replace.matcher(EXAMPLE_TEST);
System.out.println(matcher2.replaceAll("\t"));
}
}