0

我正在尝试1425从字符串中提取整数$123 / 123 - 1425ft² - Some random message。但是我只能提取5而不是1425使用下面的代码。

由于不擅长正则表达式,我曾经*匹配多个数字。

任何建议出了什么问题?谢谢!

PHP

$text = '$123 / 123 - 1425ft² - Some random message';
$pattern = '/ ([0-9])*ft²/s';
preg_match($pattern, $text, $matches);

echo '<pre>';
print_r($matches);

输出

Array
(
    [0] =>  1425ft²
    [1] => 5
)
4

3 回答 3

5

稍微改变你的模式

$pattern = '/ ([0-9]*)ft²/';

或者如果必须至少有一个匹配的号码

$pattern = '/ ([0-9]+)ft²/';

于 2013-03-04T08:59:35.687 回答
0
$text = '$123 / 123 - 1425ft² - Some random message';
$pattern = '/([0-9]+)ft²/s';
preg_match($pattern, $text, $matches);

echo '<pre>';
print_r($matches);

使用上面的代码。我已经测试过了。它工作正常。

于 2013-03-04T09:00:56.007 回答
0

试试这个 :

$text = '$123 / 123 - 1425ft² - Some random message';
$pattern = '/(?P<number>\d+)ft²/';
preg_match($pattern, $text, $matches);

echo $matches['number'];
于 2013-03-04T09:02:10.750 回答