一个通用正则表达式,适用于以下类型的字符串

时间:2015-11-27 16:19:06

标签: java string replaceall

我有一个接受字符串的函数。

ignoreWords.contains(InString.toLowerCase());

我希望这个Instring格式为"abc",这是任何没有任何字符的字符串。但我的InString格式可能为"abc"",abc"。现在,我正在处理如下

ignoreWords.contains(text.toLowerCase().replaceAll(",","")));

但是此Insting格式可以是".abc""abc.""(abc)"。我不想编写多个replaceAll函数或编写多个if语句来检查InString是否包含,.等。< / p>

InString可能是以下格式之一",abc""abc,"".abc""abc."",abc,",{{1} },".abc."",abc."".abc,"。 InString可能会以"(abc)"",(abc)""(abc),""(abc)."".(abc)"",(abc),"的形式出现这种格式的可能性非常小

使用正则表达式编写单个".(abc)."调用的有效方法是什么?它以简短的方式提供解决方案?

2 个答案:

答案 0 :(得分:1)

为什么你甚至更换其他角色?

反过来检查:

boolean shouldIgnore(String inString, List<String> ignoreWords){
  for(String ignoreWord:ignoreWords){
    if(inString.contains(ignoreWord)){
      return true;
    }
  }
  return false;
}

通过这种方式,您可以检查inString是否包含任何要忽略的单词而不替换输入字符串中的anythin。

答案 1 :(得分:1)

replaceAll将正则表达式作为第一个参数,因此您可以这样做:

ignoreWords.contains(text.toLowerCase().replaceAll("[.(),]", ""));

这将使用空字符串替换所有.(),