我使用preg_match
PHP函数仅提取空格破折号和另一个空格(-)之前的数字。
我的所有主题都有一个数字,然后是一个小描述,就像这样;
3546425 - 小描述
我只需要数字;
3546425
我尝试了这个表达式,但它只返回一个值; 1
/([0-9])(.+?(?= - ))/
这是我的PHP代码;
$pattern = '/([0-9])(.+?(?= - ))/';
$subject = '3546425 - Small description';
echo preg_match($pattern, $subject);
我可以使用PHP的subtr函数,但是第一个空格之前的数字长度不总是相同的,它可能会更短或更长,这时候它就不能正常工作。
有人能解释一下问题出在哪里吗?因为我已经在这里测试过了,它可以像我想要的那样准确标识整个数字。
explode(" - ", $s)[0]
怎么样?如果字符串格式未知,则正则表达式更好。 - Wiktor Stribiżew