2015-07-12 69 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

相关问题