Java正则表达式

1.正则表达式:

    正则表达式是一个字符串,用来描述匹配一个字符串集合的模式,可以使用正则表达式来匹配、替换和拆分字符串

2.匹配字符串

我们先来看一下String类中的matches方法,它可以判断字符串s和字符串t是否匹配下面两个语句的结果都为true:

"java".matches("java"); // true

"java".equals("java"); // true

    在上面的样例中,matches方法匹配了一个固定的字符串,但是实际上matches方法还可以匹配符合一个模式的字符串集,例如:

"java is good".matches("java.*"); // true

"java are you".matches("java.*"); // true

"javacanyou".matches("java.*"); // true

样例中的“java.*”是一个正则表达式,他描述了一个字符串模式:以java为前缀,后面跟着若干个字符串(可能是0个),“.*”代表匹配0或任意多个字符

3.正则表达式语法

正则表达式由字面值字符和特殊字符组成

 

注意事项:

       单词字符可以是任何字母、数字或者下划线字符,即\w 等价于 [a-z[A-Z][0-9]_]

       量词符:* + ? {n} {n,} {n,m},用于确定量词符前面的模式串会重复多少次

       *:代表前面的模式串出现任意次(包括0)

       +:代表前面的模式串至少出现1次

       ?:代表前面的模式串只能出现0次或1次

       {n}:代表前面的模式串只能出现n次

       {n,}:代表前面的模式串至少出现n次

       {n,m}:代表前面的模式串只能出现n次到m次之间

       不要在重复量词符中使用空白

       可以利用括号将模式串进行分组

       .*:代表任意字符串

替换和拆分字符串

除了matches方法,String类也包含replaceAll,replaceFirst,split方法,用于替换和拆分字符串

str.replaceAll(regex,String s); // 替换str中所有的能够匹配模式串的子串为字符串s

str.replaceFirst(regex,String s); // 替换str中第一个能够匹配模式串的子串为字符串s

String tokens = str.spict(regex,limit); //代表将字符串str以模式串为分隔符进行分割,limit确定匹配分割符的次数(分割的次数),默认贪心匹配,匹配尽量多的分隔符,如果limit>1,代表最多匹配limit-1次

注意:

       所有的量词符匹配时都是贪心的,他们会尽可能多匹配,但是我们可以在其后面添加问号来使得量词符变得懒惰,也就意味着只要第一次匹配成功就退出匹配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值