正则表达式

本文介绍了正则表达式的常见语法和使用,包括以偶数结尾的字符串匹配、电话号码格式验证以及姓名格式的正则模式。同时,讨论了Java中String类的replaceAll、replaceFirst和split方法在字符串替换和拆分中的应用,以及limit参数对split方法的影响。还提到了量词符的默认行为及其可调整性。
摘要由CSDN通过智能技术生成

正则表达式

常用的正则表达式

正则表达式的语法

示例1

一串字符串以偶数结尾可以描述为:[\\d]*[02468]

例如 “123”.matches(“[\\d]*[02468]”) returnsfalse

“122”.matches(“[\\d]*[02468]”) returns true

示例2

(xxx)xxx-xxxx,x是一位数字且第一位不可为0,可以描述为:\\([1-9][\\d]{2}\\)[\\d]{3}-[\\d]{4}

注意:为了在正则表达式中表示字面值(或者),必须使用\\(和\\)

例如 “(912)921-2782”.matches(\\([1-9][\\d]{2}\\)[\\d]{3}-[\\d]{4})returns true

“912-2781”.matches(\\([1-9][\\d]{2}\\)[\\d]{3}-[\\d]{4})returns false

示例3

假设姓由最多25个字母组成,并且第一个为大写形式。

则姓的模式可以描述为[A-Z][a-zA-Z]{1,24}

例如 “Smith”.matches([A-Z][a-zA-Z]{1,24})retutns true

“Jones123”.matches([A-Z][a-zA-Z]{1,24})returns false

替换和拆分字符

String类包含repalceAll、repalceFirst和split方法,用于替换和拆分字符串

repalceAll方法替换所有匹配的子字符串,repalceFirst方法替换第一个匹配的子字符串

例如

System.out.println(“JavaJava Java”.repalceAll(“v\\w”,”wi”));

显示

Jawi Jawi Jawi

下面代码

System.out.println(“JavaJava Java”.repalceFirst(“v\\w”,”wi”));

显示

Jawi Java Java

有两个重载的split方法。split(regex)方法使用匹配的分隔符将一个字符串拆分为子字符串

例如 String[] tokens=”Java1Html2Perl”.split(“\\d”);拆分为Java,Html,Perl

在split(regex,limit)方法中,limit参数确定模式匹配多少次。如果limit<=0,split(regex,limit)等同于split(regex)。如果limit>0,模式最多匹配limit-1次

示例:”Java1Html3Perl”.split(“\\d”,0);拆分为Java,Html,Perl

”Java1Html3Perl”.split(“\\d”,1);拆分为Java1Html2Perl

”Java1Html3Perl”.split(“\\d”,2);拆分为Java,Html2Perl

”Java1Html3Perl”.split(“\\d”,3);拆分为Java,Html,Perl

”Java1Html3Perl”.split(“\\d”,4);拆分为Java,Html,Perl

”Java1Html3Perl”.split(“\\d”,5);拆分为Java,Html,Perl

注意:默认情况下,它们会尽可能匹配最多次。可以通过在后面添加问号(?)来改变量词符的默认行为,这意味着它将匹配尽可能少的次数。

例如:

System.out.println(“Jaaavaa”.repalceFirst(“a+”,”R”));显示JRvaa

System.out.println(“Jaaavaa”.repalceFirst(“a+?”,”R”));显示JRaavaa

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值