使用php preg_match

时间:2010-09-02 17:49:20

标签: php regex preg-match

我正在尝试使用PHP preg_math解析一个看起来像这样的字符串:

6.15608128 Norwegian kroner

我只想要第一部分(数字),而不是文本。我写了一个像

这样的简单正则表达式
[0-9\.]+ 

在正则表达式测试中运行良好,但PHP抱怨'+'。任何人都可以帮我写这个正则表达式,所以它对preg_match函数有效吗?我已经尝试了很多不同的想法,但我真的不太了解正则表达式。

感谢您的任何提示。

4 个答案:

答案 0 :(得分:5)

The regex works fine。你错过了delimiters吗?该函数应该像这样使用:

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

(顺便说一句,你不需要逃避角色类中的.[0-9.]就够了。)

答案 1 :(得分:3)

没有实际的代码,这里有一些代码可以正常工作:

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

print_r($matches);

/* Outputs:

     Array
    (
        [0] => 6.15608128
    )
*/

#符号是分隔符。有关使用php的正则表达式的更多信息,请参阅this article

答案 2 :(得分:1)

你用斜线包围你的图案吗?

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

答案 3 :(得分:1)

试试这个:

$s = '6.15608128 Norwegian kroner';

preg_match('/[0-9]*\.[0-9]*/', $s, $matches);
var_dump($matches);