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

Java 在找到的模式之间拆分字符串,java,string,split,Java,String,Split,分割字符串的标准方法 String [] arr = s.split (regex); 剪切片段并删除找到的正则表达式。这是一种相反的方法吗 注意:在我的例子中,正则表达式和 例如: 输入 输出 可以使用正向lookbehind正则表达式拆分字符串,如下所示: (?<=;) (?1234:5678; //arr[1]=>87654321; 使用regex lookaround(这个答案中的正向lookaround)的诀窍是,lookaround不使用字符,因此不会丢失所需的;。你称之

分割字符串的标准方法

String [] arr = s.split (regex);
剪切片段并删除找到的正则表达式。这是一种相反的方法吗

注意:在我的例子中,正则表达式和

例如:

输入

输出


可以使用正向lookbehind正则表达式拆分字符串,如下所示:

(?<=;)
(?1234:5678;
//arr[1]=>87654321;

使用regex lookaround(这个答案中的正向lookaround)的诀窍是,lookaround不使用字符,因此不会丢失所需的

你称之为相反的是什么?严格地说,相反的做法是删除所有的“片段”这与正则表达式不匹配,这是您想要的吗?问题不清楚,您应该只添加一个输入/输出example@Dici是的,但现在它是否被删除并不重要。更新了此重要细节的问题有什么意义?只需在输出每个拆分时添加分隔符即可。如果重要的是不要添加到最后一个元素,然后检查索引是否为
(length()-1)
@aliteralmind可能是发布了一个非常简单的示例。我将对其进行编辑,这听起来很有效。您是否测试了它(使用拆分)?@Dici是的,在线更新了it IdeOne。问题中的示例简化了。在这个测试中,我使用了类似字符串的字符串,我将在我的程序中使用。它与这样的正则表达式一起工作吗?@risingprogrammer您不应该更改具有完全不同含义的问题,因为答案过时。Imho,您应该将您的问题编辑回原始答案wered,将其标记为已解决,并创建另一个问题,以防您有更多疑问。
arr[0] = "320,192,6057,1,0,0:0:0:0:";
arr[1] = "64,192,6327,128,0,7408:0:0:0:0:";
(?<=;)
String[] arr = "1234:5678;8765,4321;".split("(?<=;)");
System.out.println(Arrays.asList(arr));
// arr[0] => 1234:5678;
// arr[1] => 8765,4321;