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

关于Java中正则表达式的个人理解,第1张

关于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

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4970975.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-13
下一篇2022-11-13

发表评论

登录后才能评论

评论列表(0条)

    保存