package com.java.minganzifu;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(replaceScreenWord("法大功是。。。"));;
}
/**
* 敏感字汇总
*
*/
public final static String SENSITIVE_WORDS = "[法].{0,1}[大][功].{0,1};";
/**
* 对用户输入内容进行替换(过滤敏感字符)
* @param txt
*/
public static String replaceScreenWord(String txt) {
String sensitiveWords = SENSITIVE_WORDS;
String result = txt;
if (sensitiveWords!=null) {
String[] words = sensitiveWords.split(";");
for (int i = 0; i < words.length; i++) {
System.out.println(words[i]);
Pattern p = Pattern.compile(words[i]);
//log.info("o.toString="+p.toString());
Matcher m = p.matcher(txt);
if (m.find()) {
result = m.replaceAll("**");
}
}
}
return result;
}
}
使用到的是正则表达式,规则:
{n,m}
m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。刘, "o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。