PHP预拆分丢失第一个字符



我有以下字符串,并且想要从invoiceid中分离名称。名称可以有空格,也可能有连字符。

$invoice_id="May-Ann Jane-28188-1600086909";;

$invoice_id ="May-Ann Jane-28188-1600086909";

$exploded = preg_split('/[-]+[0-9]/', $invoice_id,3 ); 
foreach($exploded as $index => $answer){ 
if (!empty($answer)){ 
echo $index.": ".$answer."<br />"; 
} 

} 
$prefix = $exploded[0]; 
$invoiceid = $exploded[1]; 
$transid = $exploded[2]; 
echo '<BR>list2:<BR />';  
echo "prefix :".$prefix."<br />"; 
echo "invoiceid :".$invoiceid."<br />"; 

在输出中,任何数字的第一个字符都会丢失:

0: May-Ann Jane
1: 8188
2: 600086909
list2:
prefix :May-Ann Jane
invoiceid :8188
transid :600086909

如何找回第一个角色?

您可以使用正向前瞻(?=来拆分,断言右边的一个数字,而不是匹配它。这样就可以保留数字。

-(?=[0-9])

Regex演示| Php演示

$invoice_id ="May-Ann Jane-28188-1600086909";
$exploded = preg_split('/-(?=[0-9])/', $invoice_id, 3);
print_r($exploded);

输出

Array
(
[0] => May-Ann Jane
[1] => 28188
[2] => 1600086909
)

相关内容

  • 没有找到相关文章

最新更新