我有一个像这样的字符串:
$Order_num = "0982asdlkj";
我如何将其拆分为 2 个变量,将数字作为一个元素,然后将另一个变量作为字母元素?
数字元素可以是 1 到 4 之间的任意长度,字母元素填充其余部分,使每个 order_num 总共 10 个字符长。
我找到了 php explode
函数...但不知道如何在我的情况下实现它,因为数字的数量在 1 到 4 之间,之后的字母是随机的,所以无法在特定字母处拆分。
最佳答案
您可以使用 preg_split
使用 lookahead and lookbehind :
print_r(preg_split('#(?<=\d)(?=[a-z])#i', "0982asdlkj"));
打印
Array
(
[0] => 0982
[1] => asdlkj
)
这只有在字母部分真的只包含字母而没有数字的情况下才有效。
更新:
只是为了澄清这里发生了什么:
正则表达式查看每个位置,如果数字在该位置之前 ((?<=\d)
)并且它之后有一个字母((?=[a-z])
),那么它匹配并且字符串在这个位置。整个事情不区分大小写 ( i
)。
关于php - 在前导数字和尾随字母之间拆分字母数字字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4537994/