在字母后分割字符串

问题描述 投票:0回答:2

我正在尝试使用 preg_split 如下:

$tarea = "13.3R4.2";
$keywords = preg_split("/[0-9]*.[0-9][a-zA-Z]/", $tarea);
print_r ($keywords);

我无法捕获数组 [0] 值。以下是输出:

Array ( [0] => [1] => 4.2 ) 

我想捕获数组的两个索引。我不确定我在这里犯了什么错误。

我期望的输出是:

Array ( [0] => 13.3R[1] => 4.2 )
php preg-split
2个回答
1
投票

我认为您误解了

preg_split()
的目的。它在指定的分隔符上分割字符串,这意味着它不是为了返回分隔符而设计的。您想使用 preg_match()
 返回匹配的子字符串:
$tarea = "13.3R4.2"; preg_match_all("/[0-9]+\.[0-9][a-z]?/i", $tarea, $matches); print_r($matches);



1
投票

$tarea = "13.3R4.2"; $keywords = preg_split('/(\d*\.\d\w?)/',$tarea, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); print_r ($keywords);

输出:

Array ( [0] => 13.3R [1] => 4.2 )

谢谢大家的大力帮助!!!

© www.soinside.com 2019 - 2024. All rights reserved.