。好歹学了linux,正则还算是有基础。。。今天复习,记一下不同的地方。。
什么是正则表达式?
其实就是用于操作字符串的一个规则,用特殊的符号表示
规则::
> 预定义字符类 . 任何字符(与行结束符可能匹配也可能不匹配)
> \d 数字:[0-9]
> \D 非数字: [^0-9]
> \s 空白字符:[ \t\n\x0B\f\r]
> \S 非空白字符:[^\s]
> \w 单词字符:[a-zA-Z_0-9]
> \W 非单词字符:[^\w]
字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
应用:
String类
匹配 match()方法
切割 split()方法
替换 replceAll()
查找 需要使用对象 Pattern Matcher
因此,典型的调用顺序是
Pattern p = Pattern.compile(“a*b”);
Matcher m = p.matcher(“aaaaab”);
boolean b = m.matches();
Matcher类主要方法:
find 方法扫描输入序列以查找与该模式匹配的下一个子序列。
matches 方法尝试将整个输入序列与该模式匹配。