2013-05-11 21 views
1

我有正則表達式表達只趕上最後幾值

<title>words words </title> 

的描述,我試圖找到一個正則表達式表達給我那些標籤之間的數據的大文件,我發現這個

<title.*?>(\w+)</title> 

這將工作,但只是因爲標籤通常是像這樣

adaddad<title>Word word word</title>sdfdsfdsfs 
拿起幾場比賽,我認爲它的

通常雙方都有隨機垃圾。我在正則表達式上真的很糟糕,仍然試圖學習它,我發現了很多非常接近的帖子,但沒有任何內容對我的問題有效。

:origLink></item>\r\n<item><title>words word word</title><guid is 

這是什麼我的琴絃的一個看起來像

回答

1

試着讓你的正則表達式的貪婪

<title.*?>.+?</title> 

此外,\ w +不會匹配空格 「」

快報嘗試微調您的正則表達式http://www.ultrapico.com/Expresso.htm

+0

這就是正是我所需要的,謝謝 – AndrewBrntt 2013-05-11 04:24:33

+0

很高興幫助,請將此標記爲答案,以便其他人也可以快速找到答案。 – Jras 2013-05-11 04:28:24

+1

@Jras,'。+?'不貪心,它很懶,你沒有任何捕捉組... ...? – plalx 2013-05-11 04:32:55

1

我認爲問題是,你正在嘗試使用\w捕捉與單詞字符和空格文本以及一個更好的例子。它應該是:

<title.*?>([\w\s]+?)</title> 

這將迫使文字這樣

adaddad<title>Word word word</title>sdfdsfdsfs 

要與單詞和空格以及捕獲

+0

1+正確的正則表達式 – Damith 2013-05-11 04:44:29

-1

改用

^[^<]*<title.*?>([^<]*)</title>.*$ 

說明

^ at the beginning means begining of line 
[^<] any character but '<' 
.*$ any garbage after the tag is closed 

這將捕獲空標題以及標籤之間可能存在的任何奇怪的字符串。

<title>Normal title</title> 
<title></title> 
<title>Weird #@[email protected]#%@%^[]{}""///? title ≥╙♥</title>