正则表达式

本文介绍了正则表达式的基本规则和示例,包括字符列表、边界匹配、重复与选择等概念,并通过手机号码匹配的例子进行了实践应用。此外,还讲述了Java中正则表达式的常用方法,如matches()、split()和replaceAll()。
摘要由CSDN通过智能技术生成

一、概述

最近进行软件构造第三次实验,其中有一个任务,便是用正则表达式判断输入是否合法,而且期末考试也设计正则表达式,所以我便找了一些文章示例简单地学习正则表达式,以此作为笔记记录以下。若有错误,感谢指正。

二、部分规则及示例

1、[]

以[]来表示可以接收的字符列表

例如:[abc]表示可以接收a、b、c中任一个字符

2、[^]

表示不接受的字符列表

例如:[^abc]表示接受的字符既不能是a,也不能是b,也不能是c

3、\\

表示反斜线\

例如:\\t表示制表符\t

4、.

可以匹配任意除\n以外的字符

5、\\d

表示匹配任一个数字字符,等同于[0-9]

6、\\w

表示匹配数字大小写字母中的任意一个,等同于[0-9a-zA-Z]

7、(?i)

表示后接字符串不区分大小写

例如:(?i)abc表示可以接收ABC,abC等6中情况

8、*

表示前面的字符重复n次,n>=0

例如:a*可以接收aaaa,即任意个a,包括空

9、+

表示前面的字符重复m次,m>0

例如a+可以接收aaaa,即至少有一个a

10、?

表示前面的字符出现0次或1次

11、{n}

表示前面的只能出现n次

例如:[abcd]{3}能接受abc,acd,bcd等

12、{n,}

表示前面的字符串至少出现n次

13、{m,n}

表示前面的字符串至少出现m次,至多出现n次

14、^

边界匹配器,表示指定起始字符

例如:^[0-9]就是指定一个数字字符开始

15、$

边界匹配器,表示指定结束字符

例如:[0-9]$表示指定数字字符结尾

16、a|b

表示两侧的字符串a或b都可以接受,或的关系

17、ab

表示匹配的就是ab,与的关系

18、(ab)

表示匹配的ab作为一个整体存在

三、举例

手机号的匹配格式:1[0-9]{10},表示第一位是1,后面接10个数字的长度为11的字符串

四、Java中正则表达式的常用方法

1、matches(String regex)

功能:判断字符串是否符合输入的规则格式

例如:检验手机号码,规则如上例

public void testMatches(){
    String phone=18834565678;
    String regex="1[0-9]{10}";
    boolean sMatch=phone.matches(regex);
}

此时sMatch的结果为true

2、split(String regex)

功能:根据给定的正则表达式的规则进行切割字符串

例如:根据逗号分割字符串

public void testSplit(){
    String s="11,12,13,14,15";
    String regex=",";
    String[] sSplit=s.split(regex);
}

此时调用split方法返回了根据逗号切割而成的数组

3、replaceAll(String regex,String replacement)

功能:根据正则表达式的规则,把字符串中符合规则的部分用替代的字符串代替

例如:把字符串中的数字替换成?

public void testReplaceAll(){
    String s="123ABC12ab";
    String regex="[0-9]";
    String sReplace=s.replaceAll(regex,s);
}

此时得到的sReplace为???ABC??ab

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值