2017-07-04 86 views
0

用A1,B-> B1,C-> C1,D-> D1和E-> E1字符串替換所有A字符的正則表達式是什麼?Java替代正則表達式全部

//AND(A<>B,C>D)?GREEN(E-E) 

String expr ="AND(A<>B,C>D)?GREEN(E-E)"; 
String regex=""; 
expr.replaceAll(regex, "N1"); 
System.out.println(expr); 

的結果可能是:

AND(A1<>B1,C1>D1)?GREEN(E1-E1) 

謝謝

+0

現在沒關係,謝謝 – michele

+0

'_'在正則表達式中沒有什麼特別的含義,也許你用SQL的替換語法混淆了它? – Moira

+1

@ 1blustone也許他寫了什麼,因爲他說他不會寫什麼^^ – azro

回答

1

您可以使用這樣的正則表達式:

\b([A-E])\b 

隨着替換字符串$11

請記住,在Java中,你必須逃脫backslasher,所以你必須使用:

String expr = "AND(A<>B,C>D)?GREEN(E-E)"; 
expr = expr.replaceAll("\\b([A-E])\\b", "$11"); 
System.out.println(expr); 

Java demo

Regex demo

enter image description here

更新:您的評論如下,如果要將正則表達式擴展爲所有字母,則將[A-E]替換爲[A-Z]

+1

它不適用於這個表達式AND(J> Q, N-(N * 10/100)> O)...爲什麼? – michele

+0

@michele因爲你說過A,B,C,D和E.如果你想要替換所有的字母,那麼把'A-E'改爲'A-Z' –