我正在尝试使用PHP preg_math解析一个看起来像这样的字符串:
6.15608128 Norwegian kroner
我只想要第一部分(数字),而不是文本。我写了一个像
这样的简单正则表达式[0-9\.]+
在正则表达式测试中运行良好,但PHP抱怨'+'。任何人都可以帮我写这个正则表达式,所以它对preg_match函数有效吗?我已经尝试了很多不同的想法,但我真的不太了解正则表达式。
感谢您的任何提示。
答案 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);