我正在尝试通过出现一次或多次出现的字母来拆分字符串。
例如:
aaabbcapppp
,将生成数组,["aaa", "bb", "c", "a", "pppp"]
我有的最低效的想法是利用 newArray = str.split("");
并根据我的需要重建数组。我认为有更有效的解决方案。
最佳答案
像这样的东西会起作用:
"aaabbcapppp".match(/(.)\1*/g) // ["aaa", "bb", "c", "a", "pppp"]
(.)
匹配第 1 组中捕获的任何单个字符,后跟重复零次或多次的相同字符(\1
是一个反向引用,它完全匹配第 1 组匹配的内容)。
要仅匹配拉丁字母,请考虑使用 [a-z]
,例如:
"aaa-bbca!!pppp".match(/([a-z])\1*/g) // ["aaa", "bb", "c", "a", "pppp"]
这里,-
和 !!
不包含在结果数组中。
关于JavaScript 通过多次出现的字母拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21997437/