我从来没有理解过正则表达式的模式,并且在Google搜索之后,我一直没有任何明智之举。拆分字符串PHP
我想从这个字符串抢WordPress版本号(3.2):
<meta name="generator" content="WordPress 3.2" />
在未来升级到3.3的时候我wan't拆分代码要能得到那个。所以没有静态表达。
我该如何解决这个问题?
我从来没有理解过正则表达式的模式,并且在Google搜索之后,我一直没有任何明智之举。拆分字符串PHP
我想从这个字符串抢WordPress版本号(3.2):
<meta name="generator" content="WordPress 3.2" />
在未来升级到3.3的时候我wan't拆分代码要能得到那个。所以没有静态表达。
我该如何解决这个问题?
这里是一个正则表达式,为了这个工程...
$str = '<meta name="generator" content="WordPress 3.2" />';
preg_match('/meta name="generator" content="WordPress [0-9]+\.[0-9]" /', $str, $matches);
preg_match('/[0-9]+\.[0-9]/', $matches[0], $matches1);
$version = $matches1[0];
echo "Wordpress version is = $version";
应该输出这样的:
的WordPress版本= 3.2
$data = '<meta name="generator" content="WordPress 3.2" />';
$pat = '<meta name="generator" content="WordPress (\d*\.?\d*)" />';
if(($match = preg_match($pat, $data)) !== false){
echo $match[1];
}else{
echo "not found";
}
preg_match('|<meta name="generator" content="WordPress (.*?)" />|', $where_to_search_for, $match);
print_r($match);
虽然这是一个很老的问题,并且出于好奇,为什么不使用内置函数来撤销正在使用的WordPress版本?
<?php echo get_bloginfo('version');?>
这样,即使发电机元被删除,你会从$wp_version
VAR得到确切的版本。
正确的方法是使用[HTML解析器](http://stackoverflow.com/questions/3577641/best-methods-to-parse-html-with-php/3577662#3577662),即使它可能看起来像是矫枉过正 –
这可能是矫枉过正,但从长远来看,它会更加可靠。如果WP更改空白或你有什么,那么正则表达式可能会中断。 – Anthony