1.匹配手机号(查询记录中是否包含手机号)(mysql)
select content from chat_record where content RLIKE "[1][35678][0-9]{9}"
2.匹配电子邮箱(查询记录中是否包含电子邮箱)(mysql)
select content from chat_record where content RLIKE "[1-9a-zA-z_]{0,14}.@[1-9a-zA-z]+.com|.org|.com.cn|.net|.yeah"
3.java 正则
手机号:((13[0-9])|(14[0-9])|(15([0-9]))|(17[0-9])|(18[0-9]))\d{8}
邮箱:[1-9a-zA-z_]\w{0,14}@\w{1,}\.(com|org|com.cn|net|year)
4.替换触发的字段
List<String> matchStringList = this.matchStringList(sensitiveWords.getJavaRegular(), content);
//循环数据 替换匹配项添加样式
x.setContent(content.replace(y, "<span class='red'>" + y + "</span>"));
5.匹配正则
/**
* 查询符合的正则的字符串集合
*
* @param s 正则
* @param str 要匹配的字符串
*/
public List<String> matchStringList(String s, String str) {
// 将给定的正则表达式编译到模式中
Pattern pattern = Pattern.compile(s);
// 创建匹配给定输入与此模式的匹配器。
Matcher matcher = pattern.matcher(str);
List<String> matchList = new ArrayList<>();
//查找字符串中是否有符合的子字符串
while (matcher.find()) {
matchList.add(matcher.group());
}
return matchList;
}