我是靠谱客的博主 傻傻过客,最近开发中收集的这篇文章主要介绍浅析jsoup和正则运算,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在筛选有用数据的时候,经常会碰见一些没有用的脏数据,如何删选出对自己有用的数据呢,下面我列举一些我常用的jsoup和正则运算的一些简单方法
(我们获取到的数据是result)
第一
譬如 李明,李明,李明
我只想要第一个,该如何去处理呢
可以加一个条件

if(result.contains(",")){
result= result.split(",")[0].trim();
}

特别注意,注意,里面替换的符号在获取的数据里面复制,因为你不知道里面是不是有什么英文半角什么中文半角符号什么的,不如直接复制数据里面的

第二
如果获取到的数据是
地址:天门市绿豆街 电话:179526548
我们只想要地址该如何处理
加入一个条件

relult = relult.split("地址:")[1].split("电话:")[0];

第3
获取到的数据有数字跟文字
譬如:
111123546
李明
小红
想把获取到的数据去除数字

result = Pattern.compile("[^0-9]").matcher(result).replaceAll("");

上面我们用到了正则表达式
匹配除换行符之外的任意单个的字符 [^n] (这样可以保留^后面的东西,去除数字的话就把那个符号去掉就行了)
同理啊,要是想去除汉字

result = Pattern.compile("[u4e00-u9fa5]").matcher(result).replaceAll("");
这里的
u4e00-u9fa5
代表汉字的意思
replaceAll 代表把compile里面的大学替换成空
Pattern类的作用在于编译正则表达式后创建一个匹配模式.
Matcher类使用Pattern实例提供的模式信息对正则表达式进行匹配
/0-9/ 表示数字 09
/a-z/ 表示小写的a-z
. 匹配除换行符之外的任意单个的字符 [^n],JavaScript中是-
d
匹配任意一个十进制数字[0-9]
D
匹配任意一个非十进制数字[^0-9]
s
匹配一个不可见原子
S
匹配一个可见原子
w
匹配任意一个数字,字母,或下滑线 [0-9A-Za-z_]
W
匹配任意一个非数字,字母,或下滑线 [0-9A-Za-z_]
^
必须以前面的原子或者原子集合开始
$ 必须以前面的原子或者原子集合结束

以前用过一个在线的工具

http://tool.chinaz.com/regex/

其实吧,多写几次就好了,一开始用用就行了,不如自己写的快

第四
如何去除获取数据的html标签
用下面这个方法过一下数据就可以去除大部分html标签了

public static String delHTMLTag(String htmlStr) {
String regEx_script = "<script[^>]*?>[\s\S]*?<\/script>"; // 定义script的正则表达式
String regEx_style = "<style[^>]*?>[\s\S]*?<\/style>"; // 定义style的正则表达式
String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式
String regEx_space = "\s*|t|r|n";// 定义空格回车换行符
String regEx_w = "<w[^>]*?>[\s\S]*?<\/w[^>]*?>";//定义所有w标签
Pattern p_w = Pattern.compile(regEx_w, Pattern.CASE_INSENSITIVE);
Matcher m_w = p_w.matcher(htmlStr);
htmlStr = m_w.replaceAll(""); // 过滤script标签
Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
Matcher m_script = p_script.matcher(htmlStr);
htmlStr = m_script.replaceAll(""); // 过滤script标签
Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
Matcher m_style = p_style.matcher(htmlStr);
htmlStr = m_style.replaceAll(""); // 过滤style标签
Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
Matcher m_html = p_html.matcher(htmlStr);
htmlStr = m_html.replaceAll(""); // 过滤html标签
Pattern p_space = Pattern.compile(regEx_space, Pattern.CASE_INSENSITIVE);
Matcher m_space = p_space.matcher(htmlStr);
htmlStr = m_space.replaceAll(""); // 过滤空格回车标签
htmlStr = htmlStr.replaceAll(" ", ""); //过滤
return htmlStr.trim(); // 返回文本字符串
}

总结:

数据筛选过滤其实很简单,但是有的数据很乱,不容易选出来有用数据,那么就要本着宁可不要,也要保住正确率的原则(反正我要正确率)等大部分筛选完成了有多的功夫就去筛选那一小部分呗,不能丢了西瓜捡芝麻啊

最后

以上就是傻傻过客为你收集整理的浅析jsoup和正则运算的全部内容,希望文章能够帮你解决浅析jsoup和正则运算所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部