gpt4 book ai didi

java - 拆分正则表达式以提取连续字符的字符串

转载 作者:IT老高 更新时间:2023-10-28 20:59:58 37 4
gpt4 key购买 nike

是否有可以与 String.split() 一起使用的正则表达式?将字符串分成连续的字符 - 即在下一个字符与前一个字符不同的地方拆分?

这是测试用例:

String regex = "your answer here";
String[] parts = "aaabbcddeee".split(regex);
System.out.println(Arrays.toString(parts));

预期输出:

[aaa, bb, c, dd, eee]

虽然测试用例只有字母作为输入,但这只是为了清楚起见;输入字符可以是任何字符。


请不要提供涉及循环或其他技术的“变通办法”。

问题是为如上所示的代码找到正确的正则表达式 - 即仅使用 split() 而没有其他方法调用。这不是寻找“完成工作”的代码的问题。

最佳答案

完全可以编写正则表达式进行一步拆分:

"(?<=(.))(?!\\1)"

由于您想在每组相同的字符之间进行拆分,我们只需要寻找 2 组之间的边界。我通过使用积极的后视来获取前一个字符来实现这一点,并使用消极的前瞻和后向引用来检查下一个字符是否不是同一个字符。

如您所见,正则表达式是零宽度(只有 2 个环顾断言)。正则表达式不使用任何字符。

关于java - 拆分正则表达式以提取连续字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13596454/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com