一、Pattern的介紹
Pattern類的作用在於編譯正則表達式后創建一個匹配模式,它是java.util.regex.Pattern包下的。
二、Matcher的介紹
Matcher類使用Pattern實例提供的模式信息對正則表達式進行匹配。
三、怎么去使用
接下來就寫一個測試類(需求我想要第一個參數param11這個參數):
public class test {
public static void main(String[] args) {
String string = "param11-param2*param3+param4";
Pattern compile = Pattern.compile("\bp\w{6}");
Matcher matcher = compile.matcher(string);
while (matcher.find()) {
//7.取出表達式中的第一個參數
String str = matcher.group(0);
System.out.println(str);
}
}
}
結果:param11
四、關於正則表達式語法
1.正則表達式通用匹配符
正則表達式 說明 示例
. 匹配任何單個符號,包括所有字符 match="." result: x a + x b + x c * (x d - x e ) - x f / x g
^xxx 在開頭匹配正則xxx match="^x" result:xa
xxx$ 在結尾匹配正則xxx match=".g$" result:xg
[abc] 能夠匹配字母a,b或c match="[xa]" result:x a x x x x x x
[abc][12] 能夠匹配由1或2跟着的a,b或c
[^abc] 當^是[]中的第一個字符時代表取反,匹配除了a,b或c之外的任意字符。
(“[^ab][^12].”, “c3#”) – true(“[^ab]..[^12]“, “xcd3″) – true
[a-e1-8] 匹配a到e或者1到8之間的字符 (“[a-e1-3].”, “d#”) – true(“[a-e1-3]“, “2″) – true
xx|yy 匹配正則xx或者yy (“x.|y”, “xa”) – true(“x.|y”, “y”) – true
2.java正則表達式元字符
正則表達式 說明
\d 任意數字,等同於[0-9]
\D 任意非數字,等同於[^0-9]
\s 任意空白字符,等同於[\t\n\x0B\f\r]
\S 任意非空白字符,等同於[^\s]
\w 任意英文字符,等同於[a-zA-Z0-9]
\W 任意非英文字符,等同於[^\w]
\b 單詞邊界,也就是指單詞和空格間的位置
\B 非單詞邊界
3.正則表達式量詞
正則表達式 說明
x? x沒有出現或者只出現一次
x* x出現0次或更多
X+ X出現1次或更多
X{n} X正好出現n次
X{n,} X出現n次或更多
X{n.m} X出現至少n次但不多余m次
例如:[abc]+表示a,b,c出現一次或者多次
(abc)+ 表示abc出現一次或者多次
五、區別區分
關於"\b"和"\b"的區別:
\b : 就是正則表達式中單純的語法;
\b :這是java中轉義(轉譯)字符,"\"代表反斜杠. 在字符串中定義的話,在正則匹配規則中,等同於"\b".