Day-23

正则表达式

1        正则表达式

1.1        概述

正则表达式定义了字符串的模式,可以用来 搜索, 编辑 , 处理问题,还可以做数据提取操作

不仅限于某一种语言,但是在每种语言中有细微的差别

在java中 使用\转移符,把有意义字符转换为无意义字符,但是在正则表达式中,\也是转移符,所以如果我们再java中写正则表达式的转移符的话,要写两个\\

1.2        常用方法

 

 

 

 

1.3        (),[],{}

1>. 小括号():匹配小括号内的字符串,可以是一个,也可以是多个,常跟“|”(或)符号搭配使用,是多选结构的

  示例1:string name = "way2014";  regex:(way|zgw)  result:结果是可以匹配出way的,因为是多选结构,小括号是匹配字符串的

  示例2:string text = "123456789";  regex:(0-9) result:结果是什么都匹配不到的,它只匹配字符串"0-9"而不是匹配数字, [0-9]这个字符组才是匹配0-9的数字

 2>.中括号[]:匹配字符组内的字符,比如咱们常用的[0-9a-zA-Z.*?!]等,在[]内的字符都是字符,不是元字符,比如“0-9”、“a-z”这中间的“-”就是连接符号,表示范围的元字符,如果写成[-!?*(]这样的话,就是普通字符

  示例1: string text = "1234567890";  regex:[0-9]  result:结果是可以匹配出字符串text内的任意数字了,像上边的【或符号“|”在字符组内就是一个普通字符】

  示例2:string text = "a|e|s|v";  regex:[a|e|s]  result:结果就是匹配字符a、e、s三个字符,这个跟(a|e|s)有区别的,区别就是(a|e|s)匹配的是a、e、s三个字符的随意一个,三个 中的任意一个,这里|是元字符

 3>.大括号{}:匹配次数,匹配在它之前表达式匹配出来的元素出现的次数,{n}出现n次、{n,}匹配最少出现n次、{n,m}匹配最少出现n次,最多出现m次

1.4        练习

  1.  匹配整数和小数

\d 数字

. 任意字符

/ 转义

+ 1次或多次

? 0次或1次

() 把\.和\d+看做整体

\d+(\.\d+)?

  1. 电话

\d{11}

^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$

  1. 匹配正整数

[1-9][0-9]*

  1. 非负整数

\\d+

  1. 整数

(-?[1-9]\\d*)|0

6        Java中正则表达式

6.1        Pattern

6.1.1        概述

用于创建一个正则表达式,也可以说创建一个匹配模式,它的构造方法是私有的,不可以直接创建

可以通过Pattern.complie(String regex)创建一个正则表达式

只能做一些简单的匹配操作

6.1.2        使用

Pattern :  很多时候我们直接使用String中的三个方法即可
          验证 : 校验操作,boolean matches(String regex)
          拆分 : String[] split(String regex)
          替换 : String replaceAll(String regex,String replace)

 

6.2                 Matcher

6.2.1        概述

  1. 构造方法也是私有的,不能随意创建,只能通过Pattern.matcher(CharSequence input)方法得到该类的实例 Matcher m = p.matcher("aaaaab");
  2. 支持便捷强大的正则匹配操作,包括分组、多次匹配支持

6.2.2        三大方法

Matcher.matches():对整个字符串进行匹配,只有整个字符串都匹配了才返回true

Matcher.lookingAt():对前面的字符串进行匹配,只有匹配到的字符串在最前面才返回true

Matcher.find():对字符串进行匹配,匹配到的字符串可以在任何位置

6.2.3        字符串匹配模式

6.2.4        数据提取

 

6.2.5        叠词去重

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值