php如何为一个跟在另一个单词后面的单词做一个preg_match()

时间:2012-02-01 08:30:21

标签: php preg-match

作为一个例子,我将使用这一行:

/*! jQuery v1.7.1 jquery.com | jquery.org/license */

我如何使用preg_match查找并隔离$version变量1.7.1

考虑到该字符串中的版本号将动态更改,恕不另行通知。

所以用简单的英语听起来像是:

find the term 'jQuery v' and grab the following characters up until a space is found

3 个答案:

答案 0 :(得分:1)

这是一个交互式的php会话:

php > $haystack = "/*! jQuery v1.7.1 jquery.com | jquery.org/license */";
php > preg_match('/jQuery v([^ ]*)/', $haystack, $matches);
php > print_r($matches);
Array
(
    [0] => jQuery v1.7.1
    [1] => 1.7.1
)

如您所见,第一个匹配组包含您的版本号。

答案 1 :(得分:1)

$str = '/*! jQuery v1.7.1 jquery.com | jquery.org/license */';
if(preg_match('/jQuery v(\S+)/', $str, $m)) {
        $ver = $m[1];
}

答案 2 :(得分:0)

preg_match('|jQuery v([^\s]+)|', $str, $m);
$version = $m[1];