在找到的模式之间拆分字符串

Kin*_*tsu 2 java string split

拆分字符串的标准方法

String [] arr = s.split (regex);
Run Code Online (Sandbox Code Playgroud)

剪掉碎片并移除找到的正则表达式.是一种相反的方法吗?

注意:在我的情况下,正则表达式之间没有任何内容

例:

输入

s = "320,192,6057,1,0,0:0:0:0:64,192,6327,128,0,7408:0:0:0:0:";
Run Code Online (Sandbox Code Playgroud)

产量

arr[0] = "320,192,6057,1,0,0:0:0:0:";
arr[1] = "64,192,6327,128,0,7408:0:0:0:0:";
Run Code Online (Sandbox Code Playgroud)

Fed*_*zza 6

你可以使用正面的lookbehind正则表达式来分割你的字符串,如下所示:

(?<=;)
Run Code Online (Sandbox Code Playgroud)

工作演示

IdeOne代码

String[] arr = "1234:5678;8765,4321;".split("(?<=;)");
System.out.println(Arrays.asList(arr));
// arr[0] => 1234:5678;
// arr[1] => 8765,4321;
Run Code Online (Sandbox Code Playgroud)

使用正则表达式外观(在这个答案中是一个积极的外观)的诀窍是,外观不会消耗字符,因此你不会失去;你想要的.