我正在尝试从字符串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
)
答案 0 :(得分:5)
对您的模式进行轻微更改
$pattern = '/ ([0-9]*)ft²/';
或者是否必须至少有一个匹配的号码
$pattern = '/ ([0-9]+)ft²/';
答案 1 :(得分:0)
$text = '$123 / 123 - 1425ft² - Some random message';
$pattern = '/([0-9]+)ft²/s';
preg_match($pattern, $text, $matches);
echo '<pre>';
print_r($matches);
使用上面的代码。我测试过了。工作正常。
答案 2 :(得分:0)
试试这个:
$text = '$123 / 123 - 1425ft² - Some random message';
$pattern = '/(?P<number>\d+)ft²/';
preg_match($pattern, $text, $matches);
echo $matches['number'];