2015-04-06 63 views
1

不匹配我有一個輸入字符串 -正則表達式在Java的replaceAll()方法

f.dollar_sales,f.unit_sales 

我想用String.replaceAll(正則表達式,正則表達式)方法獲得輸出字符串如下:

dollar_sales,unit_sales 

我使用了以下內容:

fieldList.replaceAll("[a-zA-Z]\\Q.\\E"," "); 

其中fieldList中是字符串變量,其中我已經存儲的輸入字符串。

有人能指出我犯了什麼錯誤嗎?

+0

所以你試圖用僅僅dollar_sales替換f.dollar_sales?對? – ryekayo

+0

輸入字符串在你想要的值之前是否總是包含'f.',還是總是一個'[a-z] .'?你需要正則表達式還是簡單的'substring'就足夠了? –

+0

這對我有用..'System.out.println(string.replaceAll(「[a-zA-Z] \\ Q。\\ E」,「」));'用空字符串替換匹配不匹配空間。 –

回答

1

您需要分配您的替換字符串和\Q .. \E在這裏沒有必要。

fieldList = fieldList.replaceAll("[a-zA-Z]\\.", ""); 

Ideone Demo

+1

是的,這是OP輸出+1的錯誤 – anubhava

1

字符串是不可改變的,所以你需要指定更新的字符串變量。

請運行下面的代碼;

public class StringReplace { 
    public static void main(String[] args){ 
     String fieldList="f.dollar_sales,f.unit_sales"; 
     fieldList=fieldList.replaceAll("[a-zA-Z]\\Q.\\E"," "); 
     System.out.println(fieldList); 
    } 
}