如何使用 preg_split 按符号拆分字符串?
How to split out string by symbols using preg_split?
我有例如字符串 $s = 'A5C7';
和 $s = 'A5C17';
我尝试使用 preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);
按符号拆分字符串
如果字符串 $s = 'A5C7'
我得到的结果是这样的:
array(4) {
[0]=>
string(1) "A"
[1]=>
string(1) "5"
[2]=>
string(1) "C"
[3]=>
string(1) "7"
}
但如果使用 $s = 'A5C17'
我得到了:
array(5) {
[0]=>
string(1) "A"
[1]=>
string(1) "5"
[2]=>
string(1) "C"
[3]=>
string(1) "1"
[4]=>
string(1) "7"
}
我想要这样:
array(4) {
[0]=>
string(1) "A"
[1]=>
string(1) "5"
[2]=>
string(1) "C"
[3]=>
string(1) "17"
}
如何改进 preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);
以获得两种类型的结果?
提前致谢。
使用模式 //
将拆分字符。试试这个:
preg_split('/(\d+)/', $s, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
array (
0 => 'A',
1 => '5',
2 => 'C',
3 => '17',
);
此模式使用连续整数组作为分隔符,它会捕获它们之间的内容。选项 PREG_SPLIT_DELIM_CAPTURE
使它也捕获定界符(整数)。
我有例如字符串 $s = 'A5C7';
和 $s = 'A5C17';
我尝试使用 preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);
如果字符串 $s = 'A5C7'
我得到的结果是这样的:
array(4) {
[0]=>
string(1) "A"
[1]=>
string(1) "5"
[2]=>
string(1) "C"
[3]=>
string(1) "7"
}
但如果使用 $s = 'A5C17'
我得到了:
array(5) {
[0]=>
string(1) "A"
[1]=>
string(1) "5"
[2]=>
string(1) "C"
[3]=>
string(1) "1"
[4]=>
string(1) "7"
}
我想要这样:
array(4) {
[0]=>
string(1) "A"
[1]=>
string(1) "5"
[2]=>
string(1) "C"
[3]=>
string(1) "17"
}
如何改进 preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);
以获得两种类型的结果?
提前致谢。
使用模式 //
将拆分字符。试试这个:
preg_split('/(\d+)/', $s, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
array (
0 => 'A',
1 => '5',
2 => 'C',
3 => '17',
);
此模式使用连续整数组作为分隔符,它会捕获它们之间的内容。选项 PREG_SPLIT_DELIM_CAPTURE
使它也捕获定界符(整数)。