Java Regex基礎

來源:互聯網
上載者:User

Java 中有關Regex的類都在 java.util.regex 包裡
主要有 Pattern
Matcher 這兩個類

典型的調用順序是

Pattern p = Pattern.compile("a*b");Matcher m = p.matcher("aaaaab");boolean b = m.matches();

使用 Matcher 類,最重要的一個概念必須清楚:組(Group)

在Regex中,“()”定義了一個組,由於一個Regex可以包含很多的組,所以下面先說說怎麼劃分組的, 以及這些組和組的下標
下面我們看看一個小例子,來說明這個問題 
\w(\d\d)(\w+)

這個Regex有三個組: 
整個\w(\d\d)(\w+)  是第0組 group(0) 
           (\d\d)  是第1組 group(1) 
            (\w+)  是第2組 group(2) 
我們看看和Regex匹配的一個字串

x99SuperJava

group(0)  是匹配整個運算式的字串的那部分  x99SuperJava 
group(1)  是第1組(\d\d)匹配的部分           99 
group(2)  是第二組(\w+)匹配的那部分         SuperJava

Matcher 類常用方法:

public boolean matches() 

嘗試將整個地區與模式比對。這個要求整個輸入字串都要和Regex匹配,和“^$”功能相同
和find不同, find是會在整個輸入字串尋找匹配的子字串。 

public boolean find() 

find會在整個輸入中尋找是否有匹配的子字串

一般我們使用find的流程: 

 while(matcher.find()){    //在匹配的地區,使用group,replace等進行查看和替換操作 }
public int groupCount() 

這個方法返回了,Regex的匹配的組數

public String group(int group)

這個方法提供了強大而方便的工具,可以得到指定的group所匹配的輸入字串 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.