【发布时间】:2016-03-08 17:38:40
【问题描述】:
假设我想将此字符串拆分为两个变量:
$string = "levis 501";
我会用
preg_match('/\d+/', $string, $num);
preg_match('/\D+/', $string, $text);
但是假设我想把这个一分为二
$string = "levis 5° 501";
作为$text = "levis 5°"; 和$num = "501";
所以我的猜测是我应该向preg_match('/\d+/', $string, $num); 添加一个规则,该规则仅在字符串的末尾查找数字,并且我希望它在 2 到 3 位之间。
但是 $text 匹配现在也有一个数字......
你会怎么做?
【问题讨论】:
-
@WiktorStribiżew 好的,但是你如何匹配“levis 5°”?
-
将
.*分组;又名(.*). -
^(.*?)\s*(\d+)$。基本上和fusion3k的一样。你总是只需要匹配 2 个部分吗?或者可以有2个以上?你可以试试\s*(?=\s*\d+\D*$)和preg_split。 -
是的,我需要两部分
标签: php regex string split preg-match