Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP正则表达式匹配空格_Php_Regex - Fatal编程技术网

PHP正则表达式匹配空格

PHP正则表达式匹配空格,php,regex,Php,Regex,我在匹配以下正则表达式中content=“Wordpress之后的空格时遇到问题 $metatag = '<meta name="generator" content="WordPress 4.8.2">'; $metaregex = '/<meta.*?content="Wordpress.(?<version>.*?)"/'; preg_match($metaregex, $metatag, $matches); print_r($matches); $m

我在匹配以下正则表达式中
content=“Wordpress
之后的空格时遇到问题

$metatag = '<meta name="generator" content="WordPress 4.8.2">';
$metaregex = '/<meta.*?content="Wordpress.(?<version>.*?)"/';

preg_match($metaregex, $metatag, $matches);

print_r($matches);
$metatag='';

$metaregex='/这是一个打字错误。而不是:

$metaregex = '/<meta.*?content="Wordpress.(?<version>.*?)"/';
  • i
    修饰符:不区分大小写。不区分大小写匹配(忽略 [a-zA-Z])

    • 更好的方法是使用解析器,然后仅对属性值使用正则表达式

      $html = '<meta name="generator" content="WordPress 4.8.2">';
      $dom = new DOMDocument;
      $dom->loadHTML($html);
      $heads = $dom->getElementsByTagName('meta');
      foreach ($heads as $head) {
          if($head->getAttribute('name') == 'generator' && preg_match('/wordpress (?<version>(?:\d+\.?)+)/i', $head->getAttribute('content'), $version)) {
              die($version['version']);
          }
      }
      
      $html='';
      $dom=新的DOMDocument;
      $dom->loadHTML($html);
      $heads=$dom->getElementsByTagName('meta');
      foreach($heads作为$head){
      如果($head->getAttribute('name')=='generator'&&preg_匹配('/wordpress(?:\d+\.?)+)/i',$head->getAttribute('content'),$version)){
      模具($version['version']);
      }
      }
      
      演示:

      $metaregex = '/<meta.*?content="wordpress.(?<version>.*?)"/i';
      
      $html = '<meta name="generator" content="WordPress 4.8.2">';
      $dom = new DOMDocument;
      $dom->loadHTML($html);
      $heads = $dom->getElementsByTagName('meta');
      foreach ($heads as $head) {
          if($head->getAttribute('name') == 'generator' && preg_match('/wordpress (?<version>(?:\d+\.?)+)/i', $head->getAttribute('content'), $version)) {
              die($version['version']);
          }
      }