используя php preg_match - PullRequest
       5

используя php preg_match

0 голосов
/ 02 сентября 2010

Я пытаюсь использовать PHP preg_math для разбора строки, которая выглядит следующим образом:

6.15608128 Norwegian kroner

Я просто хочу первую часть (цифры), а не текст.Я написал простое регулярное выражение типа

[0-9\.]+ 

, которое отлично работает в тестерах регулярных выражений, но PHP жалуется на «+».Может кто-нибудь помочь мне написать это регулярное выражение, чтобы оно действовало для функции preg_match?Я перепробовал множество разных идей, но я не очень разбираюсь в регулярных выражениях.

Спасибо за любые советы.

Ответы [ 4 ]

5 голосов
/ 02 сентября 2010

Регулярное выражение прекрасно работает .Вам не хватает разделителей ?Функцию следует использовать так:

preg_match('/[0-9\.]+/', $string, $result);

(Кстати, вам не нужно экранировать . внутри класса символов. [0-9.] достаточно.)

3 голосов
/ 02 сентября 2010

Без реального кода, вот код, который работает:

$string = "6.15608128 Norwegian kroner";
preg_match('#[0-9\.]+#', $string, $matches); 

print_r($matches);

/* Outputs:

     Array
    (
        [0] => 6.15608128
    )
*/

Знаки # являются разделителями.Для получения дополнительной информации о регулярном выражении с php см. эту статью .

1 голос
/ 02 сентября 2010

Попробуйте это:

$s = '6.15608128 Norwegian kroner';

preg_match('/[0-9]*\.[0-9]*/', $s, $matches);
var_dump($matches);
1 голос
/ 02 сентября 2010

Вы заключаете свой шаблон в косую черту?

preg_match('/[0-9\.]+/', $string, $matches);

...