package com.hehenian.common.utils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
/**
* 联系方式过滤,如QQ
* @author vp.song
*
*/
public class SensitiveFilter {
private static final String[] rules = new String[] {
"\\w{1,}@\\w{2,7}[.]\\w{1,3}",
//"(\\d)|([零〇领灵令玲凌岭铃ⅰⅠ㈠①⑴壹亿咦伊意易衣二贰儿而ⅱⅡ㈡②⑵尔耳饵洱三伞散馓山闪潵叁ⅲⅢ㈢③⑶四丝死肆ⅳⅣ㈣④⑷思斯似私司五伍ⅴⅤ㈤⑤⑸吴乌屋午武六陆录溜留刘ⅵⅥ㈥⑥⑹遛柳七柒其器齐ⅶⅦ㈦⑦⑺八霸捌ⅷ㈧Ⅷ⑧⑻巴拔罢九久就玖酒ⅸⅨ㈨⑨⑼旧救舅究qQ::号微信聊莫陌加球腾讯鹅扣抠])|(做爱)|(联系方式)|(手机)|(抠抠)|(扣扣)|(口口)",
"(\\d)|([零〇ⅰⅠ㈠①⑴壹二贰ⅱⅡ㈡②⑵三叁ⅲⅢ㈢③⑶四肆ⅳⅣ㈣④⑷五伍ⅴⅤ㈤⑤⑸六ⅵⅥ㈥⑥⑹七柒ⅶⅦ㈦⑦⑺八捌ⅷ㈧Ⅷ⑧⑻九玖ⅸⅨ㈨⑨⑼qQ号微聊莫陌加腾讯鹅扣抠])|(做爱)|(联系方式)|(手机)|(抠抠)|(扣扣)|(口口)",
"^http[s]?://[^\\f\\n\\r\\t\\v\\\\?]*[.]?((\\w+).(\\w{3}))([\\/]*[\\?]*[\\S]*)?"
};
private static final Pattern[] ptns;
static {
ptns = new Pattern[rules.length];
for (int i = 0; i < rules.length; ++i) {
ptns[i] = Pattern.compile(rules[i]);
}
}
/**
* 是否含有敏感信息,例如QQ号
* @param text
* @return
*/
public static boolean isSensitive(String text) {
for(Pattern ptn : ptns) {
if(ptn.matcher(text).matches()) {
return true;
}
}
return false;
}
/**
* 过滤敏感信息,例如QQ号
* @param text
* @return
*/
public static String filter(String text) {
if(StringUtils.isBlank(text)){
return null;
}
//text = text.replaceAll("\\|", "").replaceAll("\\=", "").replaceAll("\\+", "").replaceAll("\\-", "").replaceAll(",", "").replaceAll(",", "");
for(Pattern ptn : ptns) {
text = ptn.matcher(text).replaceAll("*");
}
return text;//.replaceAll("\\*\\*","*");
}
public static boolean hasSensitive(String text){
if(StringUtils.isBlank(text)){
return true;
}
String target = StringUtils.replace(text, " ", "");
target = StringUtils.replace(target, " ", "");
for(Pattern ptn : ptns) {
if(ptn.matcher(target).matches()) {
return true;
}
}
return false;
}
public static String trimAllBlank(String text){
if(StringUtils.isBlank(text)){
return null;
}
String target = StringUtils.replace(text, " ", "");
return StringUtils.replace(target, " ", "");
}
public static void main(String[] args) {
Pattern p = Pattern.compile(".*c.*t.*");
//Matcher m = p.matcher("c awdasda t");
Matcher m = p.matcher("asd1a c awdasda t 3s2d13sa");
//System.out.println(text.matches("cat"));
if(m.matches()){
System.out.println(m.replaceFirst("王尼玛2"));
}else{
System.out.println("no matches");
}
}
}