为了账号安全,请及时绑定邮箱和手机立即绑定

拆分正则表达式以提取连续字符的字符串

拆分正则表达式以提取连续字符的字符串

MMTTMM 2019-12-03 16:30:31
是否有正则表达式可用于将String.split()String拆分为连续字符-即在下一个字符与前一个字符不同的地方拆分?这是测试用例:    String regex = "your answer here";    String[] parts = "aaabbcddeee".split(regex);    System.out.println(Arrays.toString(parts));预期产量:[aaa, bb, c, dd, eee]尽管测试用例仅以字母作为输入,但这仅是为了清楚起见;输入字符可以是任何字符。请不要提供涉及循环或其他技术的“替代方法”。问题是为上述代码找到正确的正则表达式-即仅使用,split()而没有其他方法调用。这不是寻找能够“完成工作”的代码的问题。
查看完整描述

1 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

完全有可能编写要拆分的正则表达式:


"(?<=(.))(?!\\1)"

由于您想在每组相同的字符之间进行分割,因此我们只需要寻找2组之间的边界。我通过使用正向后看只是抓住前一个字符,然后使用负向前看和向后引用来检查下一个字符是否不是同一字符来实现此目的。


如您所见,正则表达式为零宽度(断言仅2个)。正则表达式不会占用任何字符。


查看完整回答
反对 回复 2019-12-03
  • 1 回答
  • 0 关注
  • 673 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信