2015-07-12 73 views
3

我用正則表達式真的很糟糕,但這裏是我試圖acheive有沒有辦法去除,除了字母,數字的一切,「 - 」從字符串

StringOne = [5, -, e, 4, e, e, 0, 5, 3, 5, e, b, e, e, 5, 0, a, 4, 3, 3, 1, 9, 0, 8, 1, b, 3, 6, 1, b, 3, 6, 4, d, 3, 3, -, 2, 0, c, c, 1, c, 1, -, ., 8, 3, -, 4, 8, 4, 3]; 

而且我想刪除一切,但數字,字符和「 - 」

我找到了答案通過這樣

StringOne = StringOne.replaceAll("[^a-zA-Z0-9]", ""); 

保存字符和數字,但我也想保存「 - 」

有沒有一些方法,我可以添加到正則表達式或將去除一個正則表達式「[」「」‘]’

回答

10

當然,請添加附加的字符(即「 - 」)以保留要保留的字符類,該字符類已被創建和使用。

在字符類的末尾,「 - 」表示自己(儘管它也可以被轉義)。因此,匹配模式變爲:

"[^a-zA-Z0-9-]" 

(這是說,比賽 - 刪除 - 這不是一個英文字母,十進制數字,或破折號一切)

0

我居然找到了一種方法

StringOne= StrignOne.replaceAll("\\[|\\]|\\,", ""); 

感謝的人誰是試。

0

你可以嘗試

stringOne.replaceAll("^[a-zA-Z0-9-]",""): 

使用本網站玩弄正則表達式,看看你的表達是正確的:

http://www.regexplanet.com/advanced/java/index.html

編輯:^ [a-zA-Z0-9 [ - ]]是不正確的,因爲這兩組不包含在內。它們應該被表示爲一組字符:[a-zA-Z0-9-]

+0

此代碼僅刪除第一個字符。 – saka1029

+0

沒關係。看到我更新的答案。謝謝你糾正我。 –

+0

此代碼刪除第一個字母數字字符。 – saka1029

相關問題