2012-07-27 13 views
0

我在確定要做什麼時遇到了一些問題。將字符串與html輸入中的正則表達式匹配

基本上用java我想:

  • 閱讀在HTML從網站
  • 我想找到在這種情況下,某些字符串被之後的內容

    title=" 
    
  • 將其存儲在一個字符串中。

第一步和最後一步對我來說很簡單,但我沒有運氣(從來沒有與正則表達式)。

我相信這是我所需要的開頭:

String regex = "(?<=title=\")\\S+"; 
    Pattern name = Pattern.compile(regex); 

之後,我沒有任何線索。任何幫助?

+0

使用[jsoup(http://jsoup.org/),而不是使用正則表達式。 (這裏我們再去...) – maerics 2012-07-27 17:23:11

+0

我建議使用這個庫(你甚至會得到XPath支持):[HttpUnit](http://httpunit.sourceforge.net/),[JSoup](http:/ /jsoup.org/),[NekoHtml](http://nekohtml.sourceforge.net/) – Xeon 2012-07-27 17:23:12

回答

1
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

String EXAMPLE_TEST = "......"; 
Pattern pattern = Pattern.compile("(?<=title=\")(\\S+)") 
Matcher matcher = pattern.matcher(EXAMPLE_TEST); 
while (matcher.find()) { 
    System.out.println(matcher.group()); 
} 

注意:您可能會考慮到(?<=title=\")([^\"]*)

+1

我們想要整個標題還是直到第一個空白? – maerics 2012-07-27 17:28:08

+0

@maerics - 我相信OP沒有要求改變正則表達式模式,但他想要其他代碼的幫助來獲得匹配變量,或者... – 2012-07-27 17:56:17

0
List<String> result_list = new ArrayList<String>(); 
Pattern p = Pattern.compile("title=\"(.*)\""); 
Matcher m = p.matcher("title=\"test\""); 
boolean result = m.find(); 

while(result) 
{ 
    result_list.add(m.group(0)); 
    result = m.find(); 
}