2016-09-08 5 views
0

regex 또는 jsoup를 사용하여 메시지를 추출하는 방법은 무엇입니까? 19040172b-1, SQL 서버 개발, , 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("#~#"); 

이 일을 할 것입니다, 아직 BR 태그를 대체 할 다른 청소 방법이있을 수 있습니다.

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);