Given the following HTML content (limited to the absolute minimum I require):
How would I be able to extract Page Title
using Regex?
Given the following HTML content (limited to the absolute minimum I require):
How would I be able to extract Page Title
using Regex?
正如其他人所评论的那样,正则表达式可能不适合防弹方法。例如,使用正则表达式,很难检查<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]*>
类似但稍微简单一点——整个正则表达式匹配包括开始和结束标签。第一个(也是唯一的)捕获组(.*)
捕获中间感兴趣的位。
可视化: