preg_replace来自Meta和Link标记的非双引号是否为非空格字符?

时间:2018-08-05 14:42:17

标签: php html regex wordpress

我在 head

中有 meta link 标签

HTML代码

<html><head>
<meta name="description" content="This is description of Example Sites 2018" />
<link href="https://examplesite.com/favicon.ico" rel="icon"/>
</head>
<body>
<a href="https://example.com">Click Here</a>
</body></html>

PHP代码

preg_match("/([^\s]+)=\"([^\s]+)\"/i", $input_line, $output_array);

输出

<head>
<meta name=description content="This is description of Example Sites 2018" />
<link href=https://examplesite.com/favicon.ico rel=icon/>
</head>
<body>
<a href=https://example.com>Click Here</a>
</body>

我如何

  • 仅对head标签执行此代码
  • 不适用于 link href = a href =
  • 仅适用于非空白字符

1 个答案:

答案 0 :(得分:1)

根据我的经验,最好不要使您的Regex复杂化(出于维护目的)。 因此,您可以将提取过程分为三个步骤:

首先,提取head部分(或排除正文)。

第二,排除link部分。

最后,使用您编写的正则表达式将其提取。