在Java中过滤掉一串不需要的字符

时间:2010-11-30 12:24:41

标签: java regex string validation filter

我正在循环遍历数百个数据条目,其中大部分都是根据我的规则有效的,但是在使用条目之前必须过滤一些特殊字符或不需要的空格。

我只希望允许=,字符以及数字和字母。没有其他特殊字符。可以有单个空格,但只能在,之后分隔数据。

我在循环中调用过滤器方法:

private String filterText(String textToBeFiltered) {
    String filteredText = null;

    // Remove all chars apart from = and , with whitespace only allowed
    // after the ,

    return filteredText;
}

我对正则表达式来说是全新的,但是一直在拖网教程,并且会欣赏任何想法。

谢谢!

1 个答案:

答案 0 :(得分:7)

您可以将replaceAll方法用作:

input = input.replaceAll("[^=,\\da-zA-Z\\s]|(?<!,)\\s","");

Ideone Link

使用的正则表达式为:[^=,\\da-zA-Z\\s]|(?<!,)\\s,表示:

  • 替换=以外的任何字符, ,或任何数字或任何字母或 有效地使用""的任何非空格 删除它。
  • 同时删除任何空格 如果前面没有,