如何拆分 java 中的字符串并包含分隔符

How to split a string in java and include the delimiter

我想使用分隔符 "AAAA" 拆分此字符串 "AHHHAAAAARTFUHLAAAAAHV" 并将其保存到包含分隔符的数组中。 (所需输出:[AHHHA、AAAA、RTFUHLA、AAAA、HV])。我在下面有以下代码,但输出与我想要的输出不一样。

  String y = "AHHHAAAAARTFUHLAAAAAHV";
  System.out.println(Arrays.toString(y.split("((?<=AAAA)|(?=AAAA))")));

输出: [AHHH, A, AAA, A, RTFUHL, A, AAA, A, HV]

您可以使用 (?=AAAA[^A]|(?<=AAAA(?=[^A])))

(?=AAAA[^A] :先行匹配 AAAA 和非 A char

| : 或

(?<=AAAA(?=[^A]))) :正向后视以匹配 AAAA 与前视以确保没有 A 字符

String y = "AHHHAAAAARTFUHLAAAAAHV";
System.out.println(Arrays.toString(y.split("(?=AAAA[^A]|(?<=AAAA(?=[^A])))")));

输出:

[AHHHA, AAAA, RTFUHLA, AAAA, HV]