JavaScript按多次出现的字母拆分字符串

use*_*877 12 javascript regex string split

我试图通过一次或多次出现的字母来分割字符串.

例如:

aaabbcapppp,会产生阵列, ["aaa", "bb", "c", "a", "pppp"]

我所拥有的最低效的想法就是利用newArray = str.split("");并重建阵列以满足我的需求.我认为有一个更有效的解决方案.

p.s*_*w.g 22

像这样的东西会起作用:

"aaabbcapppp".match(/(.)\1*/g) // ["aaa", "bb", "c", "a", "pppp"]
Run Code Online (Sandbox Code Playgroud)

(.)任何单个字符,在组1中捕获,随后是相同的字符重复零分或多次匹配(\1是反向引用相匹配正是在第1组被匹配).

要仅匹配拉丁字母,请考虑使用[a-z],例如:

"aaa-bbca!!pppp".match(/([a-z])\1*/g) // ["aaa", "bb", "c", "a", "pppp"]
Run Code Online (Sandbox Code Playgroud)

这里,-!!不包括在结果数组中.