匹配的基于Java拆分的精确正则表达式

匹配的基于Java拆分的精确正则表达式,java,regex,split,Java,Regex,Split,因此,我将此代码用于演示: String input = "abcRANDOM STRINGabc"; String arr[] = input.split("abc"); System.out.println(Arrays.toString(arr)); // output: [, RANDOM STRING] arr = input.split("(?=(abc))|(?<=(abc))"); System.out.println(A

因此,我将此代码用于演示:

    String input = "abcRANDOM STRINGabc";

    String arr[] = input.split("abc");
    System.out.println(Arrays.toString(arr));
    // output: [, RANDOM STRING]

    arr = input.split("(?=(abc))|(?<=(abc))");
    System.out.println(Arrays.toString(arr));
    // output: [abc, RANDOM STRING, abc]

    arr = input.split("(?=([abc]+))|(?<=([abc]+))");// wrong syntax
    System.out.println(Arrays.toString(arr));
    // output: [a, b, c, RANDOM STRING, a, b, c]
String input=“abcRANDOM STRINGabc”;
字符串arr[]=input.split(“abc”);
System.out.println(Arrays.toString(arr));
//输出:[,随机字符串]
arr=input.split((?=(abc))|(?此功能:

String input = "aaaaabbRANDOMSTRINGabcabc";
String arr[] = input.split("(?<=[abc])(?![abc])|(?<![abc])(?=[abc])");
System.out.println(Arrays.toString(arr));
// output: [aaaaabb, RANDOMSTRING, abcabc]
String input=“aaaaaabbrandomstringabcabc”;

String arr[]=input.split(“(?”我想要第三个的修改版本,或者是完全不同的版本,不会丢失无限量的[abc]序列。”好的。我们不是一个正则表达式工厂。做一些研究,使用许多可用的正则表达式工具中的一个来开发一个满足您需要的。我最喜欢的是regexpal.com。您可以使用
(?=(?=[abc])a*b*c*)
,只需使用
(?@ctwheels您在任何情况下都不需要执行此操作True,但这会减少2个位置的匹配并提高性能。在给定字符串上,使用上面的my regex使用
197
步骤,而不是
223
步骤。