2013-05-11 58 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>