我需要拆分以下字符串。
$string = "This is string sample - $2565";
$split_point = " - ";
一: 我需要能够使用正则表达式或任何其他匹配将字符串拆分为两部分,并指定要拆分的位置。
第二: 还想为$做一个preg_match,然后只在$。右边抓一个数字。
有什么建议吗?
答案 0 :(得分:6)
$split_string = explode($split_point, $string);
和
preg_match('/\$(\d*)/', $split_string[1], $matches);
$amount = $matches[1];
如果你愿意,可以在一个正则表达式中完成:
$pattern = '/^(.*)'.preg_quote($split_point).'\$(\d*)$/'
preg_match($pattern, $string, $matches);
$description = $matches[1];
$amount = $matches[2];
答案 1 :(得分:1)
$parts = explode ($split_point, $string);
/*
$parts[0] = 'This is string sample'
$parts[1] = '$2565'
*/
答案 2 :(得分:1)
另外两个答案提到explode()
,但您也可以限制将源字符串拆分成的部分数量。例如:
$s = "This is - my - string.";
list($head, $tail) = explode(' - ', $s, 2);
echo "Head is '$head' and tail is '$tail'\n";
愿意给你:
Head is 'This is' and tail is 'my - string.'
答案 3 :(得分:0)
explode
是针对您的特定情况的正确解决方案,但如果您需要分隔符的正则表达式,则preg_split
就是您想要的