Java使用正则表达式拆分字符串

Java使用正则表达式拆分字符串,java,regex,string,split,Java,Regex,String,Split,我对正则表达式知之甚少。那么,您能告诉我如何拆分下面的字符串以获得所需的输出吗 String ruleString= "/Rule/Account/Attribute[N='accountCategory' and V>=1]"+ " and /Rule/Account/Attribute[N='accountType' and V>=34]"+ " and /Rule/Account/Attribute[N='ac

我对正则表达式知之甚少。那么,您能告诉我如何拆分下面的字符串以获得所需的输出吗

String ruleString= "/Rule/Account/Attribute[N='accountCategory' and V>=1]"+
                " and /Rule/Account/Attribute[N='accountType' and V>=34]"+
                  " and /Rule/Account/Attribute[N='acctSegId' and V>=341]"+
                   " and /Rule/Account/Attribute[N='is1sa' and V>=1]"+
                    " and /Rule/Account/Attribute[N='isActivated' and V>=0]"+
                    " and /Rule/Account/Attribute[N='mogId' and V>=3]"+
                    " and /Rule/Account/Attribute[N='regulatoryId' and V>=4]"+
                    " and /Rule/Account/Attribute[N='vipCode' and V>=5]"+
                    " and /Rule/Subscriber/Attribute[N='agentId' and V='346']​";
期望输出:

a[0] = /Rule/Account/Attribute[N='accountCategory' and V>=1]

a[1] = /Rule/Account/Attribute[N='accountType' and V>=34]
.
.
.

a[n] = /Rule/Subscriber/Attribute[N='agentId' and V='346']
我们不能简单地使用
和“
拆分字符串,因为字符串中有两个字符串(一个是必需的,另一个不是)

我想把它像这样分开

String[] splitArray= ruleString.split("] and ");

但这不起作用,因为它将从每个拆分中删除结束括号。

根据下面的正则表达式拆分输入

String[] splitArray= ruleString.split("\\s+and\\s+(?=/)");

这将根据正斜杠前面的
分割输入。

根据下面的正则表达式分割输入

String[] splitArray= ruleString.split("\\s+and\\s+(?=/)");

这将根据正斜杠前面的
来分割输入。

您必须在此处使用look behind:

String[] splitArray= ruleString.split("(?<=\\])\\s*and\\s*");

String[]splitArray=ruleString.split((?您必须在此处使用look-behind):

String[] splitArray= ruleString.split("(?<=\\])\\s*and\\s*");

String[]splitArray=ruleString.split(“(?你能解释一下这个正则表达式中发生了什么吗?我对正则表达式知之甚少。你能解释一下这个正则表达式中发生了什么吗?我对RegeXb知之甚少。你能在这个答案中添加另一个正则表达式来按照这个模式拆分字符串吗?-->]和/好的..明白了..我想是这个-->规则字符串。拆分(“(?嗨..您能在此答案中添加另一个正则表达式以根据此模式拆分字符串吗?-->]和/好..明白了..我想是-->规则字符串.split((?