Java 使用动态值分隔符分隔
Java Split with delimiter with dynamic value
我需要将我的文本拆分成多个部分并保留分隔符,我知道我可以使用下面的代码来完成 Here:
Arrays.toString("a;b;c;d".split("((?<=;)|(?=;))"))
但我卡住的是我的文本包含分隔符,里面有一个值,我的分隔符是 @[x]@
其中 x 是一个可以是 任意数字 的值。例如:@[1]@、@[44]@。我想要实现的是获得如下数组:
text : "Hello my Name is blabla.@[1]@How are you today?@[2]@ByeBye"
以及我需要得到的东西:
[ "Hello my Name is blabla.", "@[1]@", "How are you today?", "@[2]@", "ByeBye" ]
我怎样才能做到这一点?提前致谢。
尝试使用以下正则表达式作为分隔符:
((?<=(@\[\d\]@))|(?=(@\[\d\]@)))
基本上用表达式 (@\[\d\]@)
替换分号,其中 \d
匹配任何数字。
如果可以存在一个以上的数字,您可以为可能的数字数指定一个范围,例如 \d{1,1000}
而不是 \d
最多有 1000 个数字。使用 \d+
等表达式的未知位数不能与 Java 后视正则表达式一起使用。
我需要将我的文本拆分成多个部分并保留分隔符,我知道我可以使用下面的代码来完成 Here:
Arrays.toString("a;b;c;d".split("((?<=;)|(?=;))"))
但我卡住的是我的文本包含分隔符,里面有一个值,我的分隔符是 @[x]@ 其中 x 是一个可以是 任意数字 的值。例如:@[1]@、@[44]@。我想要实现的是获得如下数组:
text : "Hello my Name is blabla.@[1]@How are you today?@[2]@ByeBye"
以及我需要得到的东西:
[ "Hello my Name is blabla.", "@[1]@", "How are you today?", "@[2]@", "ByeBye" ]
我怎样才能做到这一点?提前致谢。
尝试使用以下正则表达式作为分隔符:
((?<=(@\[\d\]@))|(?=(@\[\d\]@)))
基本上用表达式 (@\[\d\]@)
替换分号,其中 \d
匹配任何数字。
如果可以存在一个以上的数字,您可以为可能的数字数指定一个范围,例如 \d{1,1000}
而不是 \d
最多有 1000 个数字。使用 \d+
等表达式的未知位数不能与 Java 后视正则表达式一起使用。