当遇到这个需求的时候第一反应就是使用正则的!进行非匹配筛选,看了一些别人写的,表示看不懂。。。
然后有点投机取巧的意思可以把不要的匹配出来然后在替换掉
提取文本
思路:去掉所有标签
/**
* 正则预编译
*/
private static final Pattern pattern = Pattern.compile("(<.+?>)|(</.+?>)");
/**
* @Description: 去掉富文本标签
* @param content 富文本
* @Author: zlh
* @Date: 2020/7/10 10:06
* @Return java.lang.String
*/
public String dealContent(String content){
// 匹配标签
Matcher matcher = pattern.matcher(content);
while (matcher.find()){
// 替换图片
content= matcher.replaceAll("").replace(" ", "");
}
return content;
}
提取中文
思路:匹配中文
/**
* 正则预编译
*/
private static final Pattern pattern = Pattern.compile("([\\u4e00-\\u9fa5]+)");
public static String getZh(String str) {
String zh = "";
Matcher matcher = Pattern.compile(regx).matcher(str);
while (matcher.find()) {
zh += match.group(0)
}
return zh;
}
- 这个只是匹配中文如果你的标签中含有中文也会匹配,文本中含有数组,字符不会匹配。