有没有办法从字符串

时间:2015-07-12 05:56:49

标签: java regex

我对正则表达式非常糟糕,但这就是我想要实现的目标

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]", "");

但我也想保存' - '

我是否有某种方法可以将其添加到正则表达式或正则表达式中删除'['','']'

3 个答案:

答案 0 :(得分:10)

当然,添加其他字符(即" - ")以保留已保留的字符类,已经创建和使用。

在角色等级结束时," - "意味着自己(虽然也可以逃脱)。因此匹配模式变为:

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

(这就是说,匹配 - 删除 - 所有不是英文字母,十进制数字或短划线的内容。)

答案 1 :(得分:0)

我实际上找到了一种方式

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

感谢所有正在尝试的人。

答案 2 :(得分:0)

你可以尝试

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

使用此网站来玩正则表达式,看看你的表达是否正确:

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

编辑:^ [a-zA-Z0-9 [ - ]]不正确,因为这两套不包括在内。它们应该表示为一组字符:[a-zA-Z0-9 - ]