在重复字符之间拆分字符串

Boh*_*ian 8 java regex split

我想取任何给定的字符串并根据重复的字符拆分它.

举个例子,如果我要输入字符串abcaaabbc,我想输出一个等于的字符串数组:[abca, a, ab, bc].每次重复一个字符时,我都想开始一个新的字符串.

当然,使用循环执行此操作是可能的,但我想知道是否可以使用该String.split()方法实现它.如果是这样 - 会RegEx是什么?

Pri*_*ley 12

对前一个字符(look-behind (?<=(.)))与下一个字符(look-ahead (?=\\1))相同并\1捕获的输入字符串进行标记(.).

    String str = "abcbabaaabbc";
    String regex = "(?<=(.))(?=\\1)";        
    System.out.println(Arrays.toString(str.split(regex)));
Run Code Online (Sandbox Code Playgroud)

  • 很酷,你能解释一下它的实际效果吗? (3认同)
  • @SwapnilS:对前一个字符(看起来在`(?<=)`后面)与下一个字符(向前看`(?=)`)相同的字符串进行标记.和`\ 1`捕获`(.)` (2认同)