php - 仅返回空格前的数字

标签 php regex

我使用 preg_match php 函数只获取一个空格破折号和另一个空格 (-) 之前的数字。

我所有的主题都有一个编号,然后是一个简短的描述;

3546425 - Small Description

我只需要数字;

3546425

我试过这个表达式,但它只返回一个值; 1

/([0-9])(.+?(?= - ))/

这是我的php代码;

$pattern = '/([0-9])(.+?(?= - ))/';
$subject = '3546425 - Small description';

echo preg_match($pattern, $subject);

我可以使用 php 的 subtr 函数,但是第一个空格之前的数字并不总是相同的长度,它也可以更短或更长,然后就不起作用了。

谁能解释一下哪里出了问题?因为我测试过here它会像我想要的那样突出显示整个数字。

最佳答案

如果你想让它变得非常简单并且你的字符串总是以数字开头,你可以将它强制转换:

$string = "3546425 - Small Description";
$number = intval($string);

关于php - 仅返回空格前的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35844746/

相关文章:

php - Docker 容器中的 Couchbase PHP SDK

macos - 我要疯了: ERROR: failed to load configuration file '/private/etc/php-fpm.conf' homebrew

c# - 带有可选部分的正则表达式不会创建反向引用

javascript - 箭尾测试失败的正则表达式匹配

java - 通过匹配字符串中的日期格式使用 Java 提取日期

ruby-on-rails - ruby 正则表达式 - 如何搜索一个词但如果另一个词存在则不搜索(在 url/uri 中)。?

php - 当 SFTP 主机无效时如何获取正确的错误消息

php - 在 Laravel 5.x 中为 trans() 组织本地化文件的好策略是什么?

javascript - 带小数点和千位分隔符的正则表达式

php - 将单个行数据从 mysql 通过电子邮件发送给单个用户