正则表达式,用于查找元机器人noindex标签

时间:2014-05-10 10:32:44

标签: regex preg-match meta noindex

我必须检查页面的源代码中是否有机器人noindex元标记,我想尽可能多地捕获不同的html语法变体。

首先我尝试了get_meta_tags()函数,但它有一些限制,所以我决定坚持使用preg_match。

我试过这个正则表达式:

"/<meta\s+name\s*=\s*[\"'](.*?)[\"']\s*content\s*=\s*[\"'].*?noindex.*?[\"']\s*\/?>/i"

但是当noindex元标记像这样(内容部分优先)时它会失败:

<meta content="follow, index"  name="robots" />

任何人都可以分享更合适的正则表达式来实现我的目标吗?

1 个答案:

答案 0 :(得分:0)

没有长/大preg的方法:

    if (preg_match_all('/\<meta.*?\>/mis',$s,$m) and strstr(join(',',$m[0]),'noindex')){

        echo 'page contains noindex meta tag';

    }else{

        echo 'without noindex meta tag';
    }