2011-08-17 74 views
3

我對Java很新,但是如何去搜索標籤文件,然後標籤之間的所有東西,比如一串文本,都會被分配給一個變量。搜索標籤,然後將標籤之間的文本保存爲變量

例如,我會有<title>THE TITLE</title>,但後來我想將字符串「THE TITLE」保存到名爲title1的變量中,或者其他東西。

我應該如何去這樣做呢?謝謝。

+0

我編輯了你的問題,這是你的意思? – amit

+0

是的,先生,謝謝! – Ben

回答

5

如果使用正則表達式,那麼你只需要使用一個捕獲組

Pattern p = Pattern.compile("<title>([^<]*)</title>", Pattern.CASE_INSENSITIVE); 
Matcher m = p.matcher(theText); 
if (m.find()) { 
    String thisIsTheTextYouWant = m.group(1); 
    .... 
+0

完美!非常感謝! – Ben

2

你不應該使用正則表達式來解析HTML:RegEx match open tags except XHTML self-contained tags

嘗試jsoup http://jsoup.org/cookbook/extracting-data/attributes-text-html

String html = "<title>THE TITLE</title>"; 
Document doc = Jsoup.parse(html); 
Element title = doc.select("title").first(); 
String result = title.text(); 
+0

請注意,他沒有解析整個文檔;他抓住了特定元素的文本。如果他使用正則表達式來標記網頁,那麼使用正則表達式會更有效率。如果他正在編寫Web瀏覽器,那麼是的,他需要一個解析器。但是當人們不需要的時候,人們就會過快地引入這樣的依賴關係。 –

+0

@ Ernest,我同意部分:在特殊情況下使用正則表達式會更有效。例如。如果OP想要在特定時間處理來自特定源的HTML文件。但是,如果OP將處理來自所有不同來源或更長時間的HTML文件,那麼正則表達式解決方案遲早會失敗 - 這裏有太多的滾動條。這不僅僅是我的選擇,這是我的經歷,我做了很多的屏幕掃描。你想要快速和骯髒的東西?去正則表達式。想要一些健壯和持久的東西?去尋找一個HTML解析器。 – bpgergo

+0

全部都是如此。很公平。 –