java技术总结正则表达式_第1页
java技术总结正则表达式_第2页
免费预览已结束,剩余1页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、技术总结正则表达式- HYPERLINK / t _blank android培训、 HYPERLINK / t _blank java培训、期待与您交流! -概述:正则表达式在程序设计语言中存在着广泛的应用,特别是用来处理字符串。如匹配字符串、查找字符串、替换字符串等。可以说,正则表达式是一段文本或一个公式,它是用来描述用某种模式去匹配一类字符串的公式,并且该公式具有一定的模式。-正则表达式代码体现:import java.util.regex.Matcher;import java.util.regex.Pattern;/* 正则表达式:主要用于针对处理字符串数据。* 好处:可以对字符串进

2、行复杂操作,并简化代码书写。* 弊端:阅读性较差。* 正则其实就是定义了符号代替了代码。* 所以学习正则就必须要掌握一些符号。* 对字符串的常见操作都有哪些呢?* 1,匹配。* 使用的是String类中的matches方法。* 2,切割。* 使用的是String类中的split方法。* 3,替换。* 使用的是String类中的replaceAll方法。* 4,获取。* 用到的是正则表达式对象。* 1,将正则表达式封装成Pattern正则对象。* 2,通过正则对象获取匹配器对象Matcher。* 3,通过匹配器将正则表达式作用到指定的字符串。* Pattern p = Ppile(a*b);*

3、Matcher m = p.matcher(aaaaab);* boolean b = m.matches();*/public class RegexDemo public static void main(String args) getDemo();/* 获取演示。*/public static void getDemo() String str = zhu yi la,ming tian bu fang jia!;System.out.println(str);/ 获取由三个字母组成单词。String reg = ba-z3b;Pattern p = Ppile(reg);Matche

4、r m = p.matcher(str);while (m.find() System.out.println(m.start() + , + m.group() + , + m.end();/ 获取匹配的子序列。/* 演示替换。*/public static void replaceDemo() String str = telover;str =/ str = str.replaceAll(d5, *);str = str.replaceAll(d3)d4(d4), $1*$2);System.out.println(str);/* 演示

5、切割。*/public static void splitDemo() String str = zhangsanaaaalisizzzwangwu;String reg = ,;/ 按照普通逗号切。reg = .;reg = +;reg = (.)1+;/ 准备期中的叠词作为分隔符。String names = str.split(reg);for (String name : names) System.out.println(name);private static void regexDemo() /* 演示正则常见的符号。*/String str = aoooob;String re

6、g = ao3,b;/ 规则:对单词为a开头 b结尾,中间有一个o或者没有o的单词都匹配。boolean b = str.matches(reg);System.out.println(str + : + b);/ 校验电话号public static void checkTel() String tel =String reg = 1358d9;boolean b = tel.matches(reg);System.out.println(tel + : + b);/ 校验QQ号private static void checkQQByReg() String qq

7、 = 1012;/ 定义一个规则,对这个qq号进行匹配操作,符合规则就是正确的,否则是错误的。/ 规则怎么定义呢?通过一些已有的符号来完成。String reg = 1-90-94,14;boolean b = qq.matches(reg);System.out.println(qq + : + b);/ checkQQ(qq);/* 校验QQ号进行校验。 要求:515. 0不能开头,必须是数字。*/public static void checkQQ(String qq) int len = qq.length();if (len = 5 & len = 15) if (!qq.start

8、sWith(0) try long l = Long.parseLong(qq);System.out.println(l + .哦了); catch (NumberFormatException e) System.out.println(qq + ,有非法字符。); else System.out.println(qq + ,不可以0开头); else System.out.println(qq + ,长度错误。);-邮箱和IP的校验:import java.util.TreeSet;public class RegexTest public static void main(String

9、 args) test_3();/* 对邮箱地址进行校验。*/public static void test_3() String mail = abc12;mail = 11.1; String reg = a-zA-Z0-9_+a-zA-Z0-9+(.a-zA-Z2,)+; reg = w+w+(.w+)+; boolean b = mail.matches(reg); System.out.println(mail+:+b); /* * 练习二,ip地址排序。 * 4 9 */public static void test_2() String ip_str = 4 9 ; /* * 按

10、照字符串的字典顺序排序, * 但是必须要先保证每一个ip段的位数是3位。补足用0补。 * */ ip_str = ip_str.replaceAll(d+), 00$1); System.out.println(ip_str); ip_str = ip_str.replaceAll(0*(d3), $1); System.out.println(ip_str); String ips = ip_str.split( +); TreeSet ts = new TreeSet();for(String ip : ips) ts.add(ip); for(String ip : ts) System

11、.out.println(ip.replaceAll(0*(d+), $1); /* * 练习一,治口吃 * 我我.我我.我叫叫叫.袁袁袁袁袁.梦梦梦梦.希希希希.希*/ public static void test_1() String str = 我我.我我.我叫叫叫.袁袁袁袁袁.梦梦梦梦.希希希希.希; /把它变成 我叫袁梦希。使用替换。 /1,把.去掉。 str = str.replaceAll(.+, ); /2,替换叠词。为当前词。 str = str.replaceAll(.)1+,$1); System.out.println(str); -网页爬虫:public class

12、 RegexTest2 public static void main(String args) throws Exception /* 网页爬虫:其实就一个可以获取网页中指定规则数据的小程序。 * * 比如抓取网页中的邮箱。*/ getMails(); getMailsByWeb(); public static void getMailsByWeb() throws Exception String str_url = HYPERLINK :8080/myweb/mail.html t _blank :8080/myweb/mail.html; URL url = new URL(str_

13、url);/1,读取指定文件。 BufferedReader bufr = new BufferedReader(new InputStreamReader(url.openStream();/2,定义规则。 String reg = w+w+(.w+)+; Pattern p = Ppile(reg);/3,开始读。String line = null; while(line=bufr.readLine()!=null) Matcher m = p.matcher(line);while(m.find() System.out.println(m.group(); bufr.close(); public static void getMails() throws Exception /1,读取指定文件。 BufferedReader bufr = new BufferedReader(new FileReader(c:mail.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论