如何用preg_split分割重复的字符和数字?

时间:2019-05-15 09:53:01

标签: php design-patterns preg-split

我正在尝试解决一些问题,我需要拆分重复的字符和所有整数

$code = preg_split('/(.)(?!\1|$)\K/', $code);

我尝试过这个,但是它是分开的,不是重复的字符,也不是重复的整数,我只需要字符

我有一个字符串'FFF86C6'

我需要一个数组(FFF, 86, C, 6);

模式为'/(.)(?!\1|$)\K/' returns (FFF, 8, 6, C, 6)

您知道如何制作吗?

1 个答案:

答案 0 :(得分:1)

您可以将此正则表达式与preg_match_all一起使用:

([A-Za-z])(\1*)|\d+

它将查找字母,后跟一些相同字符或数字。通过使用preg_match_all,我们可以找到字符串中的所有匹配项。在PHP中的用法:

$string = "FFF86CR6";
$pieces = preg_match_all('/([A-Za-z])(\1*)|\d+/', $string, $matches);
print_r($matches[0]);

输出:

Array (
  [0] => FFF
  [1] => 86
  [2] => C
  [3] => R
  [4] => 6 
)

Demo on 3v4l.org