我要求在像AND,OR,NOT,&,|,!,(,).
有一些特殊情况,如果任何paenthesis '(' or ')'
出现在单词或括号中间,并且在单词的中间出现特殊字符,我就不想拆分单词。我想要分裂任何特殊字符。我也不想分开空格。
如果括号出现在单词的单词或单词的开头,那么只有我必须分开。
例如:
我的逻辑如下。
String str = "(((Tom AND Jerray) AND Mic(#*ey and miney)) ";
str = str.replaceAll("\\s*\\(\\s*", "(");
str = str.replaceAll("\\s*\\)\\s*", ")");
str = str.replaceAll("and\\(", " and (");
str = str.replaceAll("\\)and", ") and ");
String[] splitArray= str.toUpperCase().split(("((?<=\\bOR\\b|\\bAND\\b|\\bNOT\\b)|(?=\\bOR\\b|\\bAND\\b|\\bNOT\\b))|((?<=(^| )\\(+)+\\b+)|(\\b(?=\\)($| )))"));
分割输出我从splitArray得到的是:
(((
TOM
AND
JERRAY)
AND
MIC(#*EY
AND,
MINEY))
但我希望输出为:
(((
TOM
AND
JERRAY
**)**
AND
MIC(#*EY
AND,
MINEY
**))**
我编写的代码不是拆分闭括号。我也想拆分它。任何人都可以帮我这个吗?
答案 0 :(得分:0)
String str = "(((Tom AND Jerray) AND Mic(#*ey and miney)) ";
String[] splitArray= str.toUpperCase().split(("AND|OR|(\\()+\\(|\\)(\\s|\\))+|\\)^(.)|^(.)\\("));
答案 1 :(得分:0)