Java笔记(三十)正则表达式

概述

符合一定规则的表达式

专门用于操作字符串

特点:

用于一些特定的符号来表示一些代码操作,这样就可以简化书写

所以学习正则表达式,就是在学习一些特殊符号的使用

好处:

可以简化对字符串的复杂操作

弊端:

符号定义越多,正则越长,阅读性越差

规则

下面只是一些简单的规则,具体详细规则查询API文档

Greedy 数量词X?    X,一次或一次也没有X*    X,零次或多次X+    X,一次或多次X{n}    X,恰好 n 次X{n,}    X,至少 n 次X{n,m}    X,至少 n 次,,但是不超过 m 次    字符类[abc]    a、b 或 c(简单类)[^abc]    任何字符,除了 a、b 或 c(否定)[a-zA-Z]    a 到 z 或 A 到 Z,两头的字母包括在内(范围)[a-d[m-p]]    a 到 d 或 m 到 p:[a-dm-p](并集)[a-z&&[def]]    d、e 或 f(交集)[a-z&&[^bc]]    a 到 z,除了 b 和 c:[ad-z](减去)[a-z&&[^m-p]]    a 到 z,而非 m 到 p:[a-lq-z](减去)  预定义字符类.    任何字符(与行结束符可能匹配也可能不匹配)\d    数字:[0-9]\D    非数字: [^0-9]\s    空白字符:[ \t\n\x0B\f\r]\S    非空白字符:[^\s]\w    单词字符:[a-zA-Z_0-9]\W    非单词字符:[^\w]

组和捕获

捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:

1        ((A)(B(C)))2        \A3        (B(C))4        (C)组零始终代表整个表达式。

Pattern与Matcher

java.util.regex包中定义了正则操作的相关对象

Pattern:正则表达式的编译表现形式,内部封装了多种正则模式

Matcher:正则匹配引擎,它是基于Pattern产生的,每个Pattern对象可与多个字符串进行匹配,所以可以产生多个匹配器Matcher

典型的调用顺序是

1: Pattern p = Pattern.compile("a*b"); 2: Matcher m = p.matcher("aaaaab"); 3: boolean b = m.matches();自己不喜欢的人,可以报之以沉默微笑;

Java笔记(三十)正则表达式

相关文章:

你感兴趣的文章:

标签云: