正则表达式从入门熟练到Java应用(图文举例讲解)

正则表达式在线测试地址http://tool.chinaz.com/regex/

目录

1.元字符
2.转义符
3.字符组
4.反义
5.分支
6.贪婪
7.分组
8.断言
9.JAVA中应用

1.元字符

示例: 子曰:学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不悦,不亦君子乎?
当我们想要在这一句话中匹配"子曰:"之后的所有内容呢?
正则: 子曰:.*
匹配结果: 黄色就是被匹配中的内容,下面不做匹配演示,只说明各基础符号规则用法,自己在正则测试网页上测试一下就都能看懂使用了.在这里插入图片描述
说明: 这里的英文句号”.”就是一个元字符,它将匹配除换行符以外的任意字符。
而这里的符号”*”也是元字符,但是它并不代表具体的字符,而是表示””前边的内容可以连续重复使用任意次以使整个表达式得到匹配,这种也叫做限定符。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.转义符

在这里插入图片描述

3.字符组

在这里插入图片描述

4.反义

在这里插入图片描述
在这里插入图片描述

5.分支

在这里插入图片描述
在这里插入图片描述
匹配结果:(上面看不懂的就到匹配器上匹配一下)
在这里插入图片描述

6.贪婪

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.分组

在这里插入图片描述
在这里插入图片描述

8.断言

在这里插入图片描述
理解:

(?=...)  # 匹配字符串,且紧挨着匹配的字符串之后的字符等于...,才算匹配成功,且不消耗字符串内容

(?!...)  # 匹配字符串,且紧挨着匹配的字符串之后的字符不等于...,才算匹配成功,且不消耗字符串内容

(?<=...) # 匹配字符串,且紧挨着匹配的字符串之前的字符等于...,才算匹配成功,且不消耗字符串内容

(?<!...) # 匹配字符串,且紧挨着匹配的字符串之前的字符不等于...,才算匹配成功,且不消耗字符串内容
=================================================================================

(?!abc)是把abc当做一个整体进行匹配,字符串中不存在abc才能成功,abc作为一个整体进行匹配

[^abc]只要字符串中存在a/b/c中的任一个即匹配不成功,字符串中不能出现a/b/c中的任一个

生成中nginx问题实战:当location要求匹配不以png结尾的请求时

(.*)(?<!png)$
9.JAVA代码应用

好了,前面说了那么多,都是基础知识,上面的掌握了,就可以通过逻辑写出自己需要的绝大多数正则.下面来说说JAVA中的应用.
JDK中封装有处理正则的类Pattern!

//将给定的正则表达式编译为模式,参数为正则表达式
Pattern p = Pattern.compile(String regex);
//创建一个匹配器,匹配给定的输入与此模式.参数是需要匹配的字符串
Matcher m = p.matcher(String txt);
//判断是否匹配到
boolean b=m.find();
//取出匹配到的内容---可填写参数,具体看JDK文档.
String group = m.group();
//注意:一般取出内容前记得要先判断能否匹配到,另外分析个方法,很好用,也许有的人还不知道哈.这是String内置的方法,很方便可以做一些数据效验.
String txt="这是要匹配的字符串内容";
//返回值为true或者false,表示是否匹配到.
boolean b= txt.matches("这里输入的是正则");

好了,暂时就这么多,后续如果我学习接触到新的正则技术,我会更新补充的,希望对你有些帮助,给我点个赞呗.

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值