正则表达式语句不包括完整字符串

时间:2011-11-15 17:12:03

标签: regex

我正在使用这个正则表达式:

\b(((\S+)?)(@|mailto\:|(news|(ht|f)tp(s?))\://)\S+)\b

匹配此文本字符串(是的,它包含转义的HTML):

< ahref="http://www.somesite.com/" target="_blank">

但是当我在Expresso(或任何其他正则表达式程序)中运行它时,我检索的是:

ahref="http://www.somesite.com

我需要整个字符串,包括<target="_blank">

我的正则表达式中缺少什么才能使其发挥作用?

2 个答案:

答案 0 :(得分:1)

阅读你的正则表达式,你正在寻找两个单词中断之间的东西(即空格,或行的开始/结束等);然后,除了空白之外的任何东西,接着是看起来像URI直到下一个单词中断的任何东西,所以你的模式明确地寻找不包含你所说的你所追求的空格的东西。

答案 1 :(得分:1)

“我的正则表达式中缺少什么让这项工作成功?” <[\s\S]*?\b(((\S+)?)(@|mailto\:|(news|(ht|f)tp(s?))\://)\S+)\b[\s\S]*?>