2013-10-15 33 views
0

我想只刪除[A-z|a-z]這樣的:如何刪除java中給定字符串中的唯一字符?

String input ="A021001208A 711100609C 01111"; 
String clean = input.replaceAll("\\D+^\\s+",""); 
System.out.println(clean.toString()); 

,但上面的代碼還消除了空間;我不想刪除空間。

的預期結果是:

021001208 711100609 01111 

請幫我甲酸鹽的REG-EX僅刪除字符。

回答

0

而不是使用積極的字符類,使用否定的字符類。你想要的正則表達式是:

[^\d\s] 

這意味着「除數字或空白以外的任何字符」。
當如Java編碼,它看起來像:

String clean = input.replaceAll("[^\\d\\s]",""); 
+0

它刪除字符串之間的空間,我想保留空間,它應該只刪除AZ或az – jcrshankar

+0

ya謝謝你..這就是我想要的.. – jcrshankar

+0

@jcrshankar更好地顯示我們你的實際代碼,實際文本和輸出你有你的問題,因爲這不是我的回答中的正則表達式將刪除空格。 –

1

然後只需更換[a-zA-Z]

String clean = input.replaceAll("(?i)[A-Z]+",""); 

(?i)是忽略大小寫嵌入標誌的表達。

+0

其去除串之間的空間,我想保持sapce,它應該只刪除A-Z或A-Z – jcrshankar

+0

我不認爲這是消除了空間。你確定你測試正確嗎? –

0

試試這個它會替換給定字符串中出現的所有字母。

String clean = input.replaceAll("[^a-zA-Z]", ""); 
+0

input.replaceAll(「[a-zA-Z]」,「」);這是很好的刪除字符..任何reg-ex模式相同。 – jcrshankar

+0

@jcrshankar上面也是正則表達式。似乎你正在尋找一些複雜的答案...是的? –

0

您必須使用[a-zA-Z]正則表達式。因此,您的.replaceAll()方法將如下所示:

String clean = input.replaceAll("[a-zA-Z]",""); 
+0

雅這將給我的輸出,任何正則表達式模式相同。 – jcrshankar

+0

'[a-zA-Z]'只是正則表達式。如果它有效,那麼'[a-zA-Z] +'也會起作用。 –

相關問題