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

关于Java中正则表达式的个人理解

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

关于Java中正则表达式的个人理解

1.什么是正则表达式?

正则表达式(regex)是一个字符串,由字面值字符和特殊符号组成,用来描述匹配一个字符串集合的模式。简单来说,正则表达式有很多的用途,例如可以判断输入的是否是一个数字,是否是大小写的字母,复杂一点通过正则表达式来判断输入的是否是一个邮箱地址。

2.正则表达式的语法

      下面列出一些常见的正则表达式(注意反斜杠表示的是转义字符,如果想输出反斜杠就要表示为\)

这是从Java程序设计与数据结构(基础篇)上截下来的图,里面大致包括了一些常用的正则表达式。

           **但是注意这其中的p{n,m}书中写的是n到m不包含,但是在实机操作时发现n和m都是可以取到的

           **本表中最后一行的J?a是匹配"Jp{P}a"的

1.单词字符是任何的字母,数字或者下划线字符,因此w简化为[a-z[A-Z][0-9]_]或者简化为[A-Za-z0-9_]

2.可以用括号来进行模式的分组,例如,(ab){3}匹配ababab,但是ab{3}则是匹配abbb

3.不要在重复量的字符中使用空白,例如A{3,6}不要写成A{3, 6}

3.用一些示例来构建正则表达式

1.偶数的模式可以表示为[//d]*[02468]

例如

"123".matches("[\d]*[02468]") return false

"122".matches("[\d]*[02468]") return true

2.电话号码的模式是(xxx)xxx-xxxx,第一位数字不能为0,则它的正则表达式可以表示为

 那么例如:

在这里要特别注意的是括号在正则表达式是特殊的字符,所以要表示出(或者)就应该写为\(或者\) 

3.关于标识符

4.任何的字符串都能匹配到表达式".*"

4.替换和拆分字符串

如果字符串匹配到正则表达式,String 类的matches方法会返回true

string类包括replaceAll replacefirst split方法,用于替换和拆分字符串

有两个重载的split方法,split(regex)使用匹配的分隔符将一个字符串分割为子字符串,例如:

 如果在regex之后加limit,limit参数可以确定模式匹配多少次,如果<=0,那么等同于split(regex)。如果>0,那么模式最多匹配limit-1次

注意 :

System.out.println("Jaaavaa".replaceFirst("a+","R"));

显示JRvaa,因为第一个匹配成功的是aaa

可以通过在后面添加问号的方式来改变量词符的默认行为,这样就可以匹配尽量少的次数

System.out.println("Jaaavaa".replaceFirst("a+?","R"));这样就显示JRaavaa,因为第一个匹配成功的是a

 

 

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

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

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