正則表達式 3 -- 查找
用正則表達式執行查找命令,則需要用正則對象,其規則和執行順序如下:
指定為字符串的正則表達式必須首先被便以為此類的實例。然後,可將得到的正則對象匹配任意的字符串用於創建Mather對象,執行匹配所涉及的所有狀態都駐留在匹配其中,所以多個匹配器可以共享同一個模式。
查找需要使用的對象:
Pattern 正則對象
Matcher 匹配器對象
因此,典型的調用順序為:
Pattern p = Pattern.compile("正則");
Matcher m = p.matcher("aaaaaab");
boolean b = m.matchers();
匹配器要使用到的方法:
find() 通知匹配器去匹配字符串,查找符合規則的字符串。如果能查找到符合規則的字符串,返回true
group() 獲取符合規則的子串
下面用代碼實現對一段字符串中郵箱的查找,假設郵箱規則:@前:位數為3-18位,首位是不能為0或者下劃線的字符,其他位任意字符 @後:2位以上的非下劃線字符+(.com .cn .net .com.cn)
1 public class Demo2 { 2 public static void main(String[] args) { 3 //找出郵箱 4 String str = "聯系郵箱:[email protected];[email protected];" 5 + "[email protected]
補充:
加入對字符串“ri zhao xiang lu sheng zi yan”查找,查找其中的兩個字母組成的子串
如果直接把正則寫成reg="[a-zA-Z]{2}",那麽查詢結果就會如下:
ri
zh
xi
lu
sh
zi
ya
可以看到,不僅查到了組成字符個數為兩個的單詞,還查到了多個的並且剪切到了前兩位。此時就要加入邊界匹配器:
那麽我們新的正則就應該是reg="\\b[a-zA-Z]{2}\\b" ,執行結果為:
ri
lu
zi
正則表達式 3 -- 查找