从HTML内容中提取标题

时间:2012-09-10 15:59:54

标签: regex

鉴于以下HTML内容(仅限于我要求的绝对最小):

enter image description here

我如何使用Regex提取Page Title

1 个答案:

答案 0 :(得分:1)

正如其他人所评论的那样,正则表达式可能不适合防弹方法。例如。使用正则表达式,很难检查<title>标记是否是HTML中引用字符串的一部分。对于像这样的问题,这是对StackOverflow的反复回应。但就个人而言,我认为你有一个观点认为解析器对于如此简单的提取会有点过分。如果您正在寻找一种当时大多数的方法,那么下列其中一种方法应该是冲浪的。

选项1:Lookbehind / lookahead

(?<=<title[\s\n]*>[\s\n]*)(.(?![\s\n]*</title[\s\n]*>))*

这使用lookbehind and lookahead作为标签 - .NET有一个复杂的正则表达式引擎,允许无限重复,因此你甚至可以检查标签名称和结束括号之间的空格/返回字符(参见this answer )。

选项2:捕获群组

<title[\s\n]*>[\s\n]*(.*)[\s\n]*</title[\s\n]*>

类似但稍微简单 - 整个正则表达式匹配包括开始和结束标记。第一个(也是唯一一个)捕获组(.*)捕获它们之间感兴趣的位。

可视化: Regular expression visualization

Edit live on Debuggex