0

我有一个具有常规形式的字符串文本,并且想要获取该字符串的两个部分。字符串具有格式

"<html><div style=\"text-align:center;\"><b>****</b><br><i>Aula: </i><b>****</b></div></html>"

其中****表示我想要获取的字符串部分。我能怎么做?我正在使用 JAVA,字符串也是用 HTML 编写的。

我们可以看到,String 中有趣的部分都受到了<b><\b>

4

2 回答 2

5

如果这正是您的 HTML 字符串的形式,那么您可以使用<b>和的位置使用子字符串方法</b>(如果您的 HTML 代码可以更改,您应该使用 HTML 解析器)

String s = "<html><div style=\"text-align:center;\"><b>first</b><br><i>Aula: </i><b>second</b></div></html>";
int start = s.indexOf("<b>");
int end = s.indexOf("</b>");
String firstMatch = s.substring(start + "<b>".length(), end);

//now we can start looking for next `<b>` after position where we found `</b>`
start = s.indexOf("<b>", end);
//and look for </b> after position that we found latest <b>
end = s.indexOf("</b>", start);
String secondMatch = s.substring(start + "<b>".length(), end);

System.out.println(firstMatch);
System.out.println(secondMatch);

输出:

first
second
于 2013-09-13T18:55:38.227 回答
4

你有几个选择。最明显但可能不是最好的方法是使用正则表达式。看看String.replaceAll

更好的选择是使用 HTML 解析器。JSoup就是一个例子。

于 2013-09-13T18:52:39.543 回答