
本文共 2000 字,大约阅读时间需要 6 分钟。
- 正则表达式
- 字符串对象调用
- 常用的元字符及其意义
- 元字符
- 限定修饰符
- 字符串的替换
- 字符串的分解(重点)
(1)正则表达式
正则表达式是含有一些特殊意义字符的字符串,这些特殊字符称为正则表达式中的元字符。
比如“\\dhello”中的\\d就是有特殊意义的元字符,代表0到9数字中的任何一个。字符串9hello,1hello都是和正则表达式\\dhello匹配的字符串
(2)字符串对象调用
- public boolean maches(String regex)方法
可以判断当前字符串对象是否和参数regex指定的正则表达式匹配
(3)常用的元字符及其意义
(4)在正则表达式中,可以用方括号括起若干个字符来表示一个元字符,该元字符代表方括号中的任何一个字符。
比如regex=”[159]ABC”,那么1ABC,5ABC,9ABC都是和正则表达式regex匹配的字符串
类似的还有
[abc]:代表a,b,c中的任何一个[^abc]:代表a,b,c以外的任何字符[a-zA-Z]:代表英文字母中的任何一个[a-d]:代表a到d中的任何一个另外,中括号里允许嵌套中括号,可以进行并交差运算。[a-d[m-p]]:代表a-d,或m-p中的任何字符(并)[a-z&&[def]]:代表d,e或者f中的任何一个(交)[a-f&&[^bc]]:代表a,d,e,f(差)
注意:由于“.”代表任何一个字符,所以在正则表达式如果想使用普通意义的点字符,必须使用[.]
(5)在正则表达式中可以使用限定修饰符。
比如对于限定修饰符?,如果X代表正则表达式中的一个元字符或普通字符,那么X?表示X出现0次或1次。
例如:regex=”hello[2468]?”;那么,“hello”,“hello2”,“hello4”,“hello6”,“hello8”都是与正则表达式匹配的字符串
类似的还有
X?-------------------------------------------X出现0次或1次X*--------------------------------------------X出现0次或多次X+---------------------------------------------X出现1次或多次X{n}--------------------------------------------X恰好出现n次X{n,}-------------------------------------------X至少出现n次X{n,m}----------------------------------------X出现n次至m次例如:regex=“@\\w{4}”,就是说这个\\w恰好出现四次那么“@abcd”,“@girl”,“@moon”都是与正则表达式regex匹配的字符串之一
(6)字符串的替换
JDK1.4后,字符串对象调用
- public String replaceAll(String regex,String replacement)
快速记忆:(指定的,替换的),还有注意是替换符合的所有,不只是一个,不懂看例子,12不是替换成你好你好,而是你好
方法返回一个字符串,该字符串是当前字符串中所有和参数regex指定的正则表达式匹配的字符串被参数replacement指定的字符串替换后的字符串
例如:String r=”12hello567”.replaceAll(“\\d+”,”你好”);那么,r就是“你好hello你好”
注意:
(1)当前字符串调用replaceAll()方法返回一个字符串,但不改变当前字符串。
(2)如果想剔除一个字符串的非字符,例如:
String a=”12r”;replaceAll(“\\D”,””);
(7)字符串的分解(重点)
JDK1.4后,String提供了一个方法
- public String split(String regex)
字符串调用该方法时,使用参数指定的正则表达式regex作为分隔标记分解出其中的单词,并将分解出的单词存放在字符串数组中。
例如,对于字符串:str=”1931年09月18日晚,日本发动侵华战争,请记住这个日子”;如果准备分解出全部由数字字符组成的单词,就必须用非数字字符串作为分隔标记,因此,可以使用正则表达式:String regex=“\\D+”;作为分隔标记分解出str中的单词String digitWord[]=str.split(regex);那么,digitWord[0],digitWord[1],digitWord[2]分别是“1931”,“09”,“18”
附加:
String regex=”[\\s\\d\\p{punct}]+”;表示空格,数字和符号组成的正则表达式
发表评论
最新留言
关于作者
