我正在尝试使用正则表达式拆分我的字符串。它甚至应该在每个分隔符之前和之后包括零长度匹配。例如,如果分隔符是^并且我的字符串是^^^我希望得到 4 个零长度组。我不能使用,regex = "([^\\^]*)"因为它会在分隔符之间的每个真正匹配之后包含额外的零长度匹配。所以我决定在行首或分隔符之后使用非分隔符符号。它在https://regex101.com/ 上运行完美(对不起,我在这个网站上找不到共享选项来分享我的例子)但在 Intellij IDEa 中它跳过了一场比赛。
所以,现在我的代码是:
final String regex = "(^|\\^)([^\\^]*)";
final String string = "^^^^";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find())
System.out.println("[" + matcher.start(2) + "-" + matcher.end(2) + "]: \"" + matcher.group(2) + "\"");
我希望有 5 个空字符串匹配。但我只有 4 个:
[0-0]: ""
[2-2]: ""
[3-3]: ""
[4-4]: ""
问题是为什么它会跳过 [1-1] 匹配,我该如何解决?
莫回无
相关分类