gpt4 book ai didi

java - 使用正则表达式的棘手拆分字符串

转载 作者:行者123 更新时间:2023-11-29 03:14:36 25 4
gpt4 key购买 nike

我有这个字符串

na23me=12341234las4tName=654567stree2t[696]=764545457OK

我想转换成这个数组:

['na23me=12341234', 'las4tName=654567', 'stree2t[696]=764545457', 'OK']

我认为这应该行得通:

String[] tokens = buffer.split("(?!^)(?=\\b\\w=\\d+)");

最佳答案

您可以使用此正则表达式进行拆分:

String str = "na23me=12341234las4tName=654567stree2t[696]=764545457OK";
String[] toks = str.split( "(?<==\\d{1,1000})(?=[a-zA-Z])" );
for (String tok: toks)
System.out.printf("=> [%s]%n", tok);

输出:

=> [na23me=12341234]
=> [las4tName=654567]
=> [stree2t[696]=764545457]
=> [OK]

解释:

正则表达式使用后向和前向拆分:

  • (?<==\\d{1,1000}) 是一个积极的回顾,确保当前位置前面有一个 =,后跟 1 到 1000 位数字
  • (?=[a-zA-Z]) 是一个积极的前瞻,确保在当前位置之后有一个字母

关于java - 使用正则表达式的棘手拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27444398/

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