java正则表达式及api_JAVA常用API:正则表达式regular expression

一、正则表达式的概念

正则表达式,regular expression,在代码中通常简写成regex

正则表达式是一个字符串,使用每单个字符串来描述、定义匹配规则,匹配一系列符合某个语法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合规则的文本。

二、正则表达式的匹配规则

在Pattern类中有正则表达式的规则定义,正则表达式中明确区分大小写字母。

1. 字符a:就是代表字符a

. 点代表任意字符,[\\.]

2. 字符\\:第一个\表示对第二个\的转义

[\\d]代表只能是数字,等同于[0-9]

[\\w]代表字母数字下划线,等同于[0-9a-zA-Z_]

3. \t:制表符,tab

4. \n:回车符

5. \r:换行符

6. [abc] :表示匹配范围,可以是abc任意一个

7. [a-z]: 表示匹配范围,表示可以是a-z小写字母中任意一个,同理还有[A-Z] [0-9]

8. [^abc]:表示取反

9. ^ 行的开头,$ 行的结尾,^[abc][0-9]$ 相当于 "[abc][0-9]"

10. X?  代表X出现一次,或一次也不出现.

11.  X*  代表X出现0次或多次

12.  X+  代表X出现1次或多次

13.  X{n} 代表X出现n次

14  X{n,} 代表X至少应该出现n次

16  X{n,m}代表X最少出现n次,最多出现m次

练习:

1. 解释"[0-9]{6,12}"  -->数字0-9,最少6位,最多12位,如123456

2. 解释"1[34578][0-9]{9}"  -->,第一位为1,第二位为34578任意一个,然后数字0-9 出现9次

3. 解释 "a*b"  -->a出现0次或多次,b结尾,如ab,b,aaaab

4. 校验QQ号码(全数字,0不能开头,最少5位,最多9位)

String QQ = "383661755";

String regex = "[1-9][0-9]{4,8}";

boolean b =QQ.matches(regex);

5. 匹配正整数: [0-9]+ 或\\d+

6. 匹配负整数 :“-[0-9]+"或"-\\d+"

7. 匹配正小数: "\\d+\\.\\d+"

8. 匹配负小数: "-\\d+\\.\\d+"

9. 匹配保留两位小数的正数: "\\d+\\.\\d{2}"

10. 匹配保留1-3位小数的正数: "\\d+\\.\\d{1,3}"

11. 匹配合法邮箱: 第一位不能是数字,可以是下划线,名称最多18位

"\\w+@\\w+(\\.\\w+)+"

二、正则匹配方法

String str = new String("abc");

str.matches(String regex); 返回boolean

三、正则拆分字符串

str.split(String regex),返回string[]数组

如:

String str = "www.baidu.com";

str.split("."); //以.来拆分字符串,得到String数组

结果:{"www","baidu","com"}

以空格来拆分字符串

String str = "a b c";

str.split(" ");  -->得到{"a","b","c"}

如果有多个空格

String str = "a      b      c";

str.split(" +");

三、正则替换

replaceAll(String regex,String replacement)

regex:替换规则

replacement:替换为的字符串

String s = "Hello12345World6789012";将其中的数字全部替换成*号

s.replaceAll("\\d","*");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值