源码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>匹配html中的meta charset - Zjmainstay</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
</head>
<body>
</body>
</html>
正则:
<meta[^>]*?charset=(["'/>]?)([^"'\s/>]+)\1[^>]*?>
解析:
首先以<meta为锚点,然后它后面的非闭合字符全部忽略,用[^>]*?替代,
接着匹配它的内容charset=,紧接着chaset=后面可能是单引号或双引号甚至没有,因此用["']?,
而为了后面闭合引用,给它们加了括号,接下来就是charset真正内容的部分,
此部分不为单双引号、空格、标签闭合符/和>,并且至少一个字符,因此用[^"'\s/>]+,而这部分需要提取,
因此加了括号,紧跟着闭合字符,引用charset=后面的(["']?),所以为\1,
而它后面的数据没有用处了,用[^>]*?匹配到闭合符号>前即可,最后以>结束。
未经同意禁止转载!转载请附带本文原文地址:
解析html中的meta charset,首发自
Zjmainstay学习笔记