-1
进出口面临这样的问题:正则表达式匹配
我有一个包含一些奇怪的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中做到这一点。
谢谢!
你可以jsoup从标签中提取内容。 – Raghunandan
http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – wtsang02
'regex'是你的问题..不要使用它..使用html解析器提取div标签的值,然后使用正则表达式提取数字 – Anirudha