gpt4 book ai didi

Java String Split,分隔符附加到分隔符之间的字符

转载 作者:行者123 更新时间:2023-11-29 05:43:25 26 4
gpt4 key购买 nike

我有类似的字符串

Client Name:##USERNAME## Age:##AGE## xyzed

我想Split是这样的

[Client Name:][##USERNAME##][ Age:][##AGE##][ xyzed]

我试过这个正则表达式 (?=(##(\\w+)##)) 它返回了

[Client Name:][##USERNAME## Age:][##AGE## xyzed]

因为在 java 中,look-behind 不适用于可变长度,所以不能使用

(?=(##(\\w+)##))|(?<=(##(\\w+)##))

最佳答案

如果您对巨大的硬编码上限感到满意,这将起作用:

(?=##\\w+##)|(?<=##\\w{1,1000}##)

(我还删除了一些多余的括号)

这个:

String string = "Client Name:##USERNAME## Age:##AGE## xyzed";
String regex = "(?=##\\w+##)|(?<=##\\w{1,1000}##)";
String[] arr = string.split(regex);
System.out.println(Arrays.asList(arr));

打印:

[Client Name:, ##USERNAME##,  Age:, ##AGE##,  xyzed]

Test .

这是一个替代方案,但它可能对输入过于具体:

(?=##\\w)|(?= )(?<=##)

It also works .

关于Java String Split,分隔符附加到分隔符之间的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16692230/

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