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

是否有正则表达式可用于将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()而没有其他方法调用。这不是寻找能够“完成工作”的代码的问题。


MMTTMM
浏览 733回答 1
1回答

慕丝7291255

完全有可能编写要拆分的正则表达式:"(?<=(.))(?!\\1)"由于您想在每组相同的字符之间进行分割,因此我们只需要寻找2组之间的边界。我通过使用正向后看只是抓住前一个字符,然后使用负向前看和向后引用来检查下一个字符是否不是同一字符来实现此目的。如您所见,正则表达式为零宽度(断言仅2个)。正则表达式不会占用任何字符。
打开App,查看更多内容
随时随地看视频慕课网APP