我有一个自定义字符串,它是多个项目的流版本。项目可以是整数,字符串和字符串列表,其中每个项目 分别由 I,S,L 表示。
For eg: String d = "I:123;S:345;L:{S:45;S:67;S:789};I:23";
我正在尝试编写单个正则表达式,该正则表达式可以拆分此字符串并应产生4个项目
1. I:123, 2. S:345, 3.L:{s:45;s:67;s:789}; ,4:I:23
如果我只是基于进行拆分,那么它将拆分项目也不应该发生的列表。然后,我尝试编写一些复杂的正则表达式,但没有任何效果。
有人可以给我一些指点吗?
答案 0 :(得分:1)
您应该使用惰性的量词:
(.+?);(.+?);(.*)
链接:
答案 1 :(得分:1)
您可以使用基于前瞻的正则表达式进行拆分:
String[] arr = str.split(";(?![^{}]*})");
详细信息:
;
:匹配文字;
(?![^{}]*})
:负向查找,以确保在非}
和{
字符之后没有}