正则表达式(regex)

正则表达式经常用来验证用户输入。正则表达式是一个字符串,用来描述匹配一个字符串集合的模式,通过使用正则表达式来匹配、替换和拆分字符串。

  • 匹配字符串

使用String类的matches方法,它不仅可以匹配一个固定的字符串,还可以匹配符合一个模式的字符串集。

例如:”Java”.matches(“Java”) returns true.

  • 正则表达式语法

正则表达式由字面值字符和特殊字符组成,如下表。

注意:不要在重复量词符中使用空白。

1.示例1

社会安全号的模式是xxx-xx-xxx,其中x是一位数字,其正则表达式可以描述为

[\\d]{3}-[\\d]{2}-[\\d]{4}

2.示例2

        偶数以数字0、2、4、6或8结尾。偶数的模式可以描述为

        [\\d]*[02468]

3.示例3

        电话号码的模式是(xxx)xxx-xxxx,x表示一位数字,并且第一位数字不能为0,  则其正则表达式为 \\([1-9][\\d]{2}\\) [\\d]{3}-[\\d]{4}

      为了表示”()”,必须使用\\(和\\)。

4.示例4

      任何字符串的正则表达式为”.*”?

  • 替换和拆分字符串

  1. replaceAll方法替换所有匹配的子字符串

例如:System.out.println(“Java Java Java”.replaceAll(“v\\w”,”wi”));

           显示:Jawi Jawi Jawi

     2.replaceFirst方法替换第一个匹配的子字符

例如:System.out.println(“Java Java Java”.replaceFirst(“v\\w”,”wi”));

           显示:Jawi Java Java

注意:默认情况下所有量词符会尽可能匹配最多次,例如下面语句显示JRvaa,因为第一个匹配成功的是aaa。

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

可以通过在后面添加“?“,将变成匹配尽可能少的次数,例如下面语句将显示JRaavaa,因为第一次匹配成功的是a。

System.out.println(“Jaaavaa”.replaceFirst(“a+?”,”R”));

     3.split(regex)方法使用匹配的分隔符将一个字符串拆分为子字符串。

例如:String[] tokens=“Java1HTML2Perl“.split(\\d);

      将拆分为Java、HTML、Perl,并且保存在tokens[0],tokens[1],tokens[2]中。

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

下面是一些示例:

     

   

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值