PHP, как сделать preg_match () для слова, которое следует за другим словом - PullRequest
1 голос
/ 01 февраля 2012

В качестве примера я буду использовать эту строку:

/*! 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 ]

1 голос
/ 01 февраля 2012
$str = '/*! jQuery v1.7.1 jquery.com | jquery.org/license */';
if(preg_match('/jQuery v(\S+)/', $str, $m)) {
        $ver = $m[1];
}
1 голос
/ 01 февраля 2012

Вот вам интерактивный 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
)

Как видите, первая группа совпадений содержит номер вашей версии.

0 голосов
/ 01 февраля 2012
preg_match('|jQuery v([^\s]+)|', $str, $m);
$version = $m[1];
...