在html </title>中的<title>括号内查找一个术语

时间:2014-05-14 13:50:57

标签: regex

我试图找到一个特定的字符串,其中包含html中标题标记内的关键字,例如

<title>Bla bla bla String bla bla</title>

我不确定如何在开头之外构建它:

\<title\>(Word Keyword)\<\/title\>

我还想确保如果我使用任何通配符正则表达式可能能够使用关键字之间的通配符并且不会无意中一直到html中的另一个标题块的结尾。

最后,我正试图找到一种方法来

  • 仅提取Word关键字,即使我已捕获整个正则表达式
  • 单独提取/保存。

这是因为我将提供几种类型的来源,我想提取“Word关键字”和它来自的标签名称。这可能吗?我查看了命名组,但不确定是否/如何提取后,例如。

(?P<TAG>(\<title\>|\<head\>)(?P<TERM>(Word Keyword))\<\/title\>

当然需要使用任何通配符代码来完成上述工作,但假设确实如此,那么我希望能够在匹配字符串后提取:

  • 标题
  • Bla关键字

  • Yada Keyword

1 个答案:

答案 0 :(得分:1)

<(title|head).*?>(.*?)<\/\1>

Regular expression visualization

This regex会在其第一个匹配组中包含标记,并在其第二个组中包含标记的内部html - 但请考虑使用XPath或任何HTML / XML解析器,因为Zalgo

由于non-greedy通配符,您需要PCRE才能使用此表达式。