我對分裂關鍵字串像AND,OR,NOT,&,|,!,(,).
有要求正則表達式,以避免對特殊字符
有特殊情況,我不想如有paraenthesis '(' 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
**))**
代碼我寫的不是分裂關閉括號。我也想分開。誰能幫我這個 ?
但這正則表達式是不保留分離器。有什麼辦法可以保留這個嗎? – Sameer