前言
近期一个需求,要提取到网页源码中的文字,然后对这些文字做进一步的处理,首先想到的就是正则表达式,那么下边说一下怎么用正则表达式来提取到文字内容。
做法
①我们得到的HTML源码,是带有格式的,比如换行,缩进等,所以我们首先要对这些内容进行清除。
private String regMatchEnter="\\s*|\t|\r|\n";
上面对应的分别是空格,制表符,回车,换行的正则表达式,然后匹配到后,替换为空的字符串即可。
Pattern p = Pattern.compile(regMatchEnter);
Matcher m = p.matcher(HTMLSource);
HTMLSource=m.replaceAll("");
②同样的想法,之后呢,我们去匹配所有的标签,然后将标签替换为空的字符串。
private String regMatchTag = "<[^>]*>";
上面是匹配所有HTML标签的正则表达式,同样的:
Pattern p = Pattern.compile(regMatchTag);
Matcher m = p.matcher(HTMLSource);
HTMLSource=m.replaceAll("");
这样之后就可以得到所有的文字内容了!
如果嫌这样写比较麻烦,也可以这样写,直接将正则表达式写在replaceAll方法的第一个参数中,就不需要Patter和Match了:
HTMLSource=HTMLSource.replaceAll(regMatchTag,"");
效果是一样的!