1

我从来没有理解过正则表达式的模式,在谷歌搜索之后我也没有变得更聪明。

我想从这个字符串中获取 WordPress 版本号(3.2):

<meta name="generator" content="WordPress 3.2" />

将来升级到 3.3 时,我不希望拆分代码能够做到这一点。所以没有静态表达式。

我该如何解决这个问题?

4

4 回答 4

2

这是一个适用于此的正则表达式......

$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

于 2011-07-12T18:17:04.810 回答
0
$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";
}
于 2011-07-12T17:30:27.293 回答
0
preg_match('|<meta name="generator" content="WordPress (.*?)" />|', $where_to_search_for, $match);
print_r($match);
于 2011-07-12T17:35:36.317 回答
0

虽然这是一个很老的问题,而且出于好奇,你为什么不直接使用内置函数来检索正在使用的 WordPress 版本呢?

<?php echo get_bloginfo( 'version' );?>

这样,即使删除了生成器元数据,您也会从$wp_versionvar 中获得准确的版本。

于 2014-02-25T09:53:06.240 回答