我正在寻找元描述标记的正则表达式代码。
#<meta|name="description|".*content|="([^"]+)"># <-
这就是我所拥有的,但它与大写字母不匹配,因为我发现一些标签就像META DESCRIPTION =
等。
是否有新代码或方法更改此代码以匹配大写字母内容?
答案 0 :(得分:1)
在您的上一个i
之后添加标记#
。
像这样:
#<meta|name="description|".*content|="([^"]+)">#i
这将告诉您的正则表达式不区分大小写。阅读有关旗帜here的更多信息。
答案 1 :(得分:1)
您的正则表达式<meta|name="description|".*content|="([^"]+)">
已损坏,表示:
<meta
name="description
"
后跟content
后面的任何内容
或强> ="
后跟至少一个不是"
后跟">
让我说parsing HTML with regular expressions is a very bad idea。
但是如果你想尝试一些培训,那就开始改进了:
#<meta name="description" content="([^"]+)">#i
不区分大小写并按照您的想法行事。
请注意它与这样的有效元素不匹配:
<meta name="description" content="foo bar baz">
或
<meta
name="description"
content="foo bar baz">
或
<meta content="foo bar baz" name="description">
答案 2 :(得分:1)
你可以像这样使用它:
/<meta[^>]*name=[\"|\']description[\"|\'][^>]*content=[\"]([^\"]*)[\"][^>]*>/i
也适用于压缩的html代码。
答案 3 :(得分:1)
选中此php function可轻松获取包含说明的所有元数据。
答案 4 :(得分:0)
<meta\s+(?=[^>]*name\s*=\s*("|')description\1)[^>]*content\s*=\s*("|')(.*?)\2[^>]*>