java--正则表达式

正则表达式概念:一个字符串,一个规则java

String regex ="[1-9]\\d{4,14}"正则表达式

str.matches(regex)  返回值类型boolean继承

java.util.regex下的Pattern类字符串


 

单个字符类it

[abc] []表明单个字符,表示a或b或c字符table

[^abc] 除a/b/c外的任何字符class

[a-zA-Z]表示范围,两头的字母包括表单

[a-d[m-p]]并集方法

[a-z&&[def]]交集im

[a-z&&[^bc]] = [ad-z]

[a-z &&[^m-p]]减去


 

预约义字符类

. 任意字符

\d =[0-9]     // \表示转义字符,若是想表示\d的话,须要\\d

\D [^0-9]非数字

\s 空白字符 [ \t\n\x0B\f\r] \ttable键水平制表符,\n换行 \r回车   匹配空格和table键的等

\S 非空白字符

\w 单词字符[a-zA-Z_0-9]

\W 非单词字符

 


数量词 Greedy

X ? X一次或一次也没有 注意:一次也没有指得是X,也不能出现其余的""

X* X零次到屡次

X+ X一次到屡次

X{n} X出现n次

X{n,}x出现至少n次

X{n,m}x出现n-m次

 


 

注意:split分割时,如使用.分割,须要\\.


 

replaceall 正则表达式的替换功能

String s = "wo1ai2heima";

String regex = "\\d";

String s2 = s.replaceAll(regex,"");


 

正则表达式的分组功能

1.组零表明整个表达式

2.其余按照左括号分组

String regex = "(.)\\1(.)\\2" \\1第一组出现两次 \\2第二组出现两次

String regex = "(.)\\1+" +表示第一组出现一次到屡次

String s = str.replaceAll("(.)\\1+","$1")$1表示第一组中的内容

 


 

Pattern 和Matcher概述

Pattern不能被继承,其典型调用顺序为:

Pattern p = Pattern.compile(String regex);  获取正则表达式

Matcher m = p.matcher(String str) ; 获取str的匹配器

boolean b = m.matches(); 看是否能匹配,匹配就返回true

上面三步骤等于 str.matches(regex)

上面的第一种方法看似是复杂的,可是其相较于第二种方法有更加实用的场景,如获取字符串中的手机号码等。

Pattern p = Pattern.compile(String regex);  获取正则表达式

Matcher m = p.matcher(String str) ; 获取str的匹配器

boolean b = m.find(); 看是否有匹配的子串,匹配就返回true

String s1= m.group();返回上次匹配的子串

while(m.find())

      System.out.println(m.group);    获取字符串中匹配的全部子串。

相关文章
相关标签/搜索