0

Given the following HTML content (limited to the absolute minimum I require):

enter image description here

How would I be able to extract Page Title using Regex?

4

1 回答 1

1

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

选项 1:后视/前瞻

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

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

选项 2:捕获组

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

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

可视化: 正则表达式可视化

在 Debuggex 上实时编辑

于 2013-09-01T08:52:30.520 回答