栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

day26

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

day26

1.正则表达式

正则表达式定义了字符串的模式。

n正则表达式可以用来搜索、编辑或处理文本。

正则表达式定义了字符串的模式,可以用来 搜索, 编辑 , 处理问题,还可以做数据提取操作
 不仅限于某一种语言,但是在每种语言中有细微的差别
 java中 1.4推出,java.util.regex 包下
  在java中 使用转移符,把有意义字符转换为无意义字符
 但是在正则表达式中,也是转移符,所以如果我们再java中写正则表达式的转移符的话,要写两个\
常用语法 : 
              转移符
              . 匹配任意字符
          取值范围 : 
              [abc] : 可能是a,也可能是b,也可能是c
              [^abc] : 不是a,b,c任意一个
              [a-zA-Z ]: 匹配大小写 字母
              [^a-zA-Z ] : 非大小写字母
              [0-9] : 数字
              [a-zA-Z0-9] : 大小写字母和数字
          简洁表示 : 
              . : 任意字符
              d : 表示数字[0-9]
              D : 表示非数字 [^0-9]
            s : 表示由空字符组成
          S : 表示由非空字符组成
             w : 表示 字母,数字,下划线 [a-zA-Z0-9_]
             W : 表示非 字母,数字,下划线 [^a-zA-Z0-9_]
          数量相关 : 
              ? : 表示出现0或1次
             + : 表示出现1次或多次 count >=1
              * : 表示出现0次或0次以上 count >= 0
              {n} : 表示出现n次
             {n,} : 表示出现n次及n次以上 count >= n
              {n,m} : 表示出现n到m次  m>=count>=n
 () : 表示一个整体
          ([a-z]|[0-9]){2}
          (0-9) : 注意 表示整体 而不是范围,所以这个匹配 字符串 0-9 而不是数字 0到9 
 [] : 可以理解为字符组, 字符组中 - 为连接符,表示区间范围
          [0-9] : 表示 0,1,2,3,4,5,6,7,8,9 都可以
  {} : 表示范围
^ : 表示开头 , 在[]中 表示取反  
 $ : 表示结尾
  
  在java中 正则表达式封装为三个相关的类
          PatternSyntaxException : 异常类
          Pattern : 正则表达式对象,能做一些简单操作
          Matcher : 支持强大的正则表达式
 Pattern :  很多时候我们直接使用String中的三个方法即可
          验证 : 校验操作,boolean matches(String regex)
         拆分 : String[] split(String regex)
         替换 : String replaceAll(String regex,String replace)

 

 

 2(){}[]

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次

 3Java中的正则表达式

 4Pattern

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

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

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

 

 

5Matcher

 

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

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

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

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

字符串匹配模式:

 数据提取:

 叠词去重:

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/396850.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号