[英]How to modify this regular expression to be case insensitive while searching for curse words?
此刻,此亵渎性过滤器会找到darn
和golly
但找不到Darn
或Golly
或DARN
或GOLLY
。
List<String> bannedWords = Arrays.asList("darn", "golly", "gosh");
StringBuilder re = new StringBuilder();
for (String bannedWord : bannedWords)
{
if (re.length() > 0)
re.append("|");
String quotedWord = Pattern.quote(bannedWord);
re.append(quotedWord);
}
inputString = inputString.replaceAll(re.toString(), "[No cursing please!]");
如何将其修改为不区分大小写?
使用预编译的java.util.regex.Pattern
Pattern p = Pattern.compile(re.toString(),Pattern.CASE_INSENSITIVE);//do this only once
inputString = p.matcher(inputString).replaceAll("[No cursing please!]");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.