📅  最后修改于: 2023-12-03 15:33:36.526000             🧑  作者: Mango
在开发过程中,我们经常需要从字符串中提取数字或将字符串转换为数字。但是提取数字时,如果字符串不带逗号,则难以确定数字的起始和终止位置。这时可以使用 PHP 的正则表达式来解决这个问题。
下面是一个使用正则表达式从不带逗号的字符串中提取数字的示例代码:
$subject = "The price is 123.45 dollars";
preg_match_all('/\d+(\.\d+)?/', $subject, $matches);
print_r($matches[0]);
此代码将输出如下结果:
Array
(
[0] => 123.45
)
以上代码使用 preg_match_all
函数来匹配字符串中的数字。正则表达式 \d+(\.\d+)?
匹配一组数字,其中 \d+
匹配一个或多个数字,(\.\d+)?
匹配一个可选的小数部分。最后,使用 print_r
函数打印匹配到的数字,即数组 $matches
数组的第一项 $matches[0]
。
此外,如果匹配到了多个数字,可以使用 preg_match
函数来匹配第一个数字,如下所示:
$subject = "The price is 123.45 dollars";
preg_match('/\d+(\.\d+)?/', $subject, $match);
echo $match[0];
此代码将输出如下结果:
123.45
以上代码与前面的代码类似,只不过使用了 preg_match
函数来匹配第一个数字,而不是使用 preg_match_all
函数匹配所有的数字。
以上是 PHP 中从不带逗号的字符串中提取数字的示例代码。如果您有更好的实现方式或更深入的知识,欢迎在评论区分享。