2012-02-13 78 views
2

我有以下字符串,我想从href标记中派生出数字()。我如何得出这个数字。如何从字符串中获取特定的数据?

Hello this is testing string <a href=\"/testing/104321\">Ap</a><img src=\"Image Url" width=\"222\" height=\"149\"/><br/><br/>test\u00e4n p\u00e4\u00e4ll\u00e4 test, test\u00e4, test? 

我想最终的输出是这样的。

String[] strExample= {"testing", "104321","test\u00e4n p\u00e4\u00e4ll\u00e4 test, test\u00e4, test?"}; 

任何帮助表示赞赏。

回答

2

你可以尝试一个简单的模式匹配与正则表达式:

String THE_PATTERN = "<a\\s+href\\s*=\\s*\"/([a-zA-Z]+)/([0-9]+)"; 
Matcher m = Pattern.compile(THE_PATTERN).matcher(THE_INPUT_STRING); 
String[] results = new String[2]; 
if (m.find()) { 
    results[0] = m.group(1); 
    results[1] = m.group(2); 
} 

还没有尝试过的,所以有可能是小/容易修正错误。

+0

好的,但你改变了你的问题,因为我回答了(你用第三个字符串来匹配)。只需调整正则表达式,将括号放在要匹配的第三部分的周围,然后m.group(3)将返回它。查看'Pattern' javadoc获得更多正则表达式信息和'Matcher' – 2012-02-13 08:57:42

+0

非常感谢。你能再次帮助我吗?我也想在
标签后面输入字符串。我也改变了我的问题。请看看这个,给我解决方案。我永远感谢你。 – 2012-02-13 09:00:28

+0

我从来没有使用模式和匹配器,所以你能帮我解决我的问题吗? – 2012-02-13 09:02:41

0

对于单一的情况下

String[] strExample = str.split("^.+?\\\"/|\\\\\">.+<br/>|/"); 

会工作。如果你想解析的字符串发生很大变化,它会中断。如果有更多的模式需要考虑,可能还会有更多的例子。

相关问题