在筛选有用数据的时候,经常会碰见一些没有用的脏数据,如何删选出对自己有用的数据呢,下面我列举一些我常用的jsoup和正则运算的一些简单方法
(我们获取到的数据是result)
第一
譬如 李明,李明,李明
我只想要第一个,该如何去处理呢
可以加一个条件
复制代码
1
2
3
4if(result.contains(",")){ result= result.split(",")[0].trim(); }
特别注意,注意,里面替换的符号在获取的数据里面复制,因为你不知道里面是不是有什么英文半角什么中文半角符号什么的,不如直接复制数据里面的
第二
如果获取到的数据是
地址:天门市绿豆街 电话:179526548
我们只想要地址该如何处理
加入一个条件
复制代码
1
2relult = relult.split("地址:")[1].split("电话:")[0];
第3
获取到的数据有数字跟文字
譬如:
111123546
李明
小红
想把获取到的数据去除数字
复制代码
1
2result = Pattern.compile("[^0-9]").matcher(result).replaceAll("");
上面我们用到了正则表达式
匹配除换行符之外的任意单个的字符 [^n] (这样可以保留^后面的东西,去除数字的话就把那个符号去掉就行了)
同理啊,要是想去除汉字
复制代码
1
2
3
4
5
6result = Pattern.compile("[u4e00-u9fa5]").matcher(result).replaceAll(""); 这里的 u4e00-u9fa5 代表汉字的意思 replaceAll 代表把compile里面的大学替换成空
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Pattern类的作用在于编译正则表达式后创建一个匹配模式. Matcher类使用Pattern实例提供的模式信息对正则表达式进行匹配 /0-9/ 表示数字 0 到 9 /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标签了
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25public 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和正则运算内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复