2016-09-08 4 views
0

Как извлечь эти сообщения с помощью регулярных выражений или jsoup? 19040172b-1, SQL Server Разработка, чжэн, 3-5,7-14, D-101,Java regex, jsoup

<div id="AE9D7F630640426F8457A661607D2B8E-5-2" style="display: none;" class="kbcontent"> 
 
    19040172b-1 
 
    <br>SQL Server Develop 
 
    <br> 
 
    <font title="teacher">zheng</font> 
 
    <br> 
 
    <font title="week">3-5,7-14</font> 
 
    <br> 
 
    <font title="classroom">D-101</font> 
 
    <br> 
 
</div>

Я попытался следующие но не удалось.

1. Pattern pattern = Pattern.compile(">(.*?)<br>"); 

2. Elements msg = doc.select(":matchesOwn([>.*?<br>])"); 

ответ

0
String html = "<div id=\"AE9D7F630640426F8457A661607D2B8E-5-2\" style=\"display: none;\" class=\"kbcontent\"> 19040172b-1 <br>SQL Server Develop <br> <font title=\"teacher\">zheng</font> <br> <font title=\"week\">3-5,7-14</font> <br> <font title=\"classroom\">D-101</font> <br> </div> "; 
html = html.replaceAll("<br>", "#~#"); 
Document doc = Jsoup.parse(html.toString()); 
String newHtml = doc.text(); 
String[] ary = newHtml.split("#~#"); 

Это сделает работу, но могут быть и другие чистые способы, чтобы заменить бр тег.

1

1) Во-первых, никогда не рекомендуется разбирать HTMl с регулярным выражением. You can read more about that here.

2) Вы можете просто взять весь текст между тегами.

Document doc = Jsoup.parse(file, charsetName); 
String text= doc.text(); 
System.out.println(text);