博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.Net转Java自学之路—基础巩固篇十八(正则)
阅读量:6868 次
发布时间:2019-06-26

本文共 1984 字,大约阅读时间需要 6 分钟。

正则表达式:

  正则就是用于操作字符串的规则。其中是以一些符号来标识规则。

  字符类:

    [] :范围  - :连接符  ^ :非

  预定义字符类:

    . :任何字符  

    \d :数字  \D :非数字

    \s :空白字符  \S :非空白字符

    \w :单词字符  \W:非单词字符

  边界匹配器:

    ~ :行开头  $ :行结尾  \b :单词边界

  组:

    ()

    当组进行嵌套时可以通过从左到右来计算其开括号来编号。组0代表的是整个表达式

    实例:(.)\\1+

    为了提高规则复用,用()进行封装,每个括号都是一个编号,从1开始

    为了复用这个规则,可以通过编号来完成该规则的调用。需要对编号数字进行转义。\\1就代表获取1组规则

  基本功能:

    匹配:

      str.matches("正则");

    切割:

      str.split("正则");

    替换:

      str.replaceAll("正则");

    获取:

      使用正则对象Pattern和匹配器Matcher

//范例://先将正则表达式编译成正则对象。使用的是Pattern类的一个静态方法。Compile(regex)Pattern p=Pattern.compile("a*b");//a和b之间可以有字符也可以没有//让正则对象和要操作的字符串相关联,通过matcher方法来完成,并返回匹配器对象Matcher m=p.matcher("aaaab");//通过匹配器对象的方法将正则模式作用到字符串上让字符串进行针对性的功能操作boolean b=m.matches();//将规则对字符串进行查找while(m.find()){    //将查找的内容进行获取。group()只获取不查找,一次只获取一个,故要循环处理    m.group();    //第二种方式获取:获取值序列 m.start(); m.end();    str.substring(m.start(),m.end());}

实例:

//正则邮箱校验public boolean checkMail(String mail){    String reg="[0-9a-zA-Z_]+@[0-9a-zA-Z]+(\\.[a-zA-Z]+)+";    retrun mail.matches(reg);}//叠词还原:public String showStr(String str){    str=str.replaceAll("字符串中出现的符号","");    retrun str.replaceAll("(.)\\1","$1");}//IP排序:public void sortIp(String ips){    //补0    ips=ips.replaceAll("(\\d+)","00$1");    ips=ips.replaceAll("0*(\\d{3})","$1");    String[] iplist=ips.split(" +");    TreeSet
ts=new TreeSet
(); for(String str : iplist){ ts.add(str); } for(String str : ts){ str.replaceAll("0*(\\d+)","$1");//去除0 }}//爬虫:public void getContentByWeb(String regex){ URL url=new URL(地址); URLConnection conn=url.openConnection(); BufferedReader bufIn=new BufferedReader(new InputStreamReader(conn.getInputStream())); String line=null; Pattern p=Pattern.compile(regex); while((line=bufIn.readLine())!=null){ Matcher m=p.matcher(line); while(m.find()){ m.group(); } }}

 

转载于:https://www.cnblogs.com/zltao/p/10383823.html

你可能感兴趣的文章
chmod修改文件权限失败
查看>>
数据结构与算法-->互为素数
查看>>
Linux系统学习方法——写给小白
查看>>
Nginx服务器报500 Internal Server Error错误
查看>>
链表的游标实现
查看>>
记一次在spring环境中 使用模板模式
查看>>
Edraw Max(亿图图示)新手福音:教你思维导图的简单画法!
查看>>
go读取超大文件内容并发写入到redis的功能
查看>>
MySQL数据库中的Date,DateTime,TimeStamp和Time类型
查看>>
位运算实现输出数字的二进制
查看>>
Springboot应用缓存实践之:Ehcache加持
查看>>
CSS+DIV之流式布局
查看>>
客车网上售票系统(Java源码+sql脚本)
查看>>
创新扶贫机制 助推产业发展——2019消费扶贫与乡村振兴(深圳)大会即将召开...
查看>>
linux之入门---U盘安装centos7.3
查看>>
运维Linux技巧
查看>>
熊掌号是什么及对小网站真的有保护作用吗?
查看>>
java虚拟机内存监控工具
查看>>
chmod命令、chown命令、umask命令、chattr命令、lsattr命令
查看>>
APP网站安全漏洞检测服务的详细介绍
查看>>