Regex 如何使用';拆分字符串';使用正则表达式java中的条件

Regex 如何使用';拆分字符串';使用正则表达式java中的条件,regex,Regex,我想在java中使用正则表达式拆分一个字符串,并将“,”作为带条件的分隔符。如果下一个“,”之前只有一个“=”字符,则它将是一个分隔符 例: testRegex的值应为: APPLICATION:1:1=SECTOR APPLICATION:2:1=INDUSTRY DESCRIPT:1:1=Sec,tor DESCRIPT:2:1=Industry 对正则表达式有什么想法吗?到目前为止,我还没有找到任何例子:(如果分隔符逗号后面应该跟一个包含等号的部分

我想在java中使用正则表达式拆分一个字符串,并将“,”作为带条件的分隔符。如果下一个“,”之前只有一个“=”字符,则它将是一个分隔符

例:

testRegex的值应为:

     APPLICATION:1:1=SECTOR
     APPLICATION:2:1=INDUSTRY
     DESCRIPT:1:1=Sec,tor
     DESCRIPT:2:1=Industry

对正则表达式有什么想法吗?到目前为止,我还没有找到任何例子:(

如果分隔符逗号后面应该跟一个包含等号的部分,您可以使用正向前瞻

String parts[] = yourString.split(",(?=[^,]*=)");

(?=)用于正向前瞻。它不会用于拆分,它只是一个断言,将从匹配中丢弃。

我怀疑你的标题是否表达了你真正想要的内容。如果用逗号拆分字符串,它将不起作用。你尝试过任何表达式吗?键是否始终遵循
ALNUMS:DIGITS:DIGITS
模式?嗨,对不起,我很抱歉对正则表达式来说是个新手,对这种情况没有任何想法好吧,所以想法是:匹配
,后面跟
ALNUMS:DIGITS:DIGITS
或字符串结尾。是否总是在要拆分的逗号旁边加上大写字母?如果是这样,尝试如下模式:@bobblebble字母不能是边框,它可以是upper或小写。@yavuzkavuz行得通!谢谢您的解释:)@bobblebble删除后也行。谢谢:)此解决方案不会从最后一项中删除尾随逗号。正则表达式必须与字符串末尾的
匹配,才能解决这个问题。@WiktorStribiżew,你说得对。如果有必要,可以使用split(“,(?:(?=[^,]*=)|$”)之类的内容。
String parts[] = yourString.split(",(?=[^,]*=)");