我面临这个问题:
我有一个包含一些奇怪的 HTML 内容的字符串,比如
String result = "<div id=\"foo\"><div class=\"bar\">xyz</div><div id=\"alert\"><strong>Foo Bar 2% foobar.</strong></div></div>"
(这个字符串比这个例子还要大。它包含一个完整的网页。)
我现在的问题是:
- 找到线
<div id="alert"><strong>Foo Bar 2% foobar.</strong></div>
- 提取那里的数字(数字)
2
(这可能是[0-9]{1,3}
)。
我的尝试:
String pattern = "<div id=\"alert\"><strong>(.+) (\\d{1,3})% (.+)</strong></div>";
Matcher matcher = Pattern.compile(pattern).matcher(result);
while(matcher.find()) {
Log.i(TAG, "" + matcher.group();
}
但这不会抛出预期的结果(我会除外:)2
。
我主要用PHP开发,所以处理(preg_match
)没有问题,但我不知道如何在Java中做到这一点。
谢谢!