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']);
}
}