天才教育網(wǎng)合作機(jī)構(gòu) > 編程語(yǔ)言培訓(xùn)機(jī)構(gòu) > java培訓(xùn)機(jī)構(gòu) >

佛山中公財(cái)經(jīng)

歡迎您!
朋友圈

13140882082

全國(guó)統(tǒng)一學(xué)習(xí)專線 9:00-21:00

位置:編程語(yǔ)言培訓(xùn)資訊 > java培訓(xùn)資訊 > 在java中使用正則表達(dá)式

在java中使用正則表達(dá)式

日期:2021-07-08 11:52:31     瀏覽:398    來(lái)源:佛山中公財(cái)經(jīng)
正則表達(dá)式(regular expression)一個(gè)又經(jīng)典又實(shí)用又陌生的東西。說(shuō)他經(jīng)典因?yàn)?正則表達(dá)式"在1956年就有了,說(shuō)他實(shí)用是因?yàn)楦鞣N語(yǔ)言里都有它的身影,說(shuō)他陌生是因?yàn)槭褂玫娜瞬缓芏唷?  今天遇到了,不妨就了解一下吧。反正有益無(wú)害,絕對(duì)是綠色產(chǎn)品。正則表達(dá)式主要應(yīng)用于文本的處理,如檢索,替換,檢查錯(cuò)誤,文字拆分...實(shí)在是一言難盡,如果要全部寫(xiě)出來(lái),一本書(shū)都不差不多。還好oreilly已經(jīng)為我們出了一本了。   講具體內(nèi)容以前先給個(gè)完整的例子,這樣能有個(gè)感性的認(rèn)識(shí)。 import java.util.regex.*; public class Regex{    public static void main(String[] args){         String text = "my email address is xhinker@163.com";
        Pattern pattern = Pattern.compile("\w+@\w+.\w+");
        Matcher matcher = pattern.matcher(text);
        if(matcher.find()){
            System.out.println(matcher.group());
        }      } } 把這段程序用jdk或jcreator或水膩的便了。反正運(yùn)行起來(lái)就是了輸出結(jié)果:xhinker@163.com 當(dāng)你看完下面的東西回頭再看看這段程序就會(huì)發(fā)現(xiàn),這不過(guò)是小菜一碟   字符和字符類

表格 A: 字符匹配

操作

解釋

例子

結(jié)果

.

單個(gè)字符匹配

   .ord

匹配 “ford”, “l(fā)ord”, “2ord”,

[ ]

多個(gè)字符列表

   [cng]

只會(huì)匹配 “cord”, “nord”, 和 “gord”

[^ ]

不出現(xiàn)字符列表

   [^cn]

匹配 “l(fā)ord”, “2ord”, 等. 但不會(huì)匹配 “cord” or “nord”

  [a-zA-Z]

匹配 “aord”, “bord”, “Aord”, “Bord”等

   [^0-9]

匹配 “Aord”, “aord”, 等. 但不會(huì)匹配“2ord”, 等.

 

表格 B: 重復(fù)操作符

操作

解釋

例子

結(jié)果

?

匹配0次或1次

 “?erd”

匹配 “berd”, “herd”“erd”等

*

匹配0次以上

“n*rd”

匹配 “nerd”, “nrd”, “neard”, 等.

+

匹配1次以上

“[n]+erd”

匹配 “nerd”, “nnerd”, 等., 但不匹配 “erd”

{n}

匹配n次

“[a-z]{2}erd”

匹配“cherd”, “blerd”, 等. 但不匹配 “nerd”, “erd”, “buzzerd”, 等.

{n,}

匹配n次以上

“.{2,}erd”

匹配 “cherd” and “buzzerd”, but not “nerd”

{n,N}

匹配n-N次

 “n[e]{1,2}rd”

匹配 “nerd” and “neerd”等

  常用符號(hào): d:[0-9] D:[^0-9] w:[a-zA-Z0-9] W:[^a-zA-Z0-9]   {?i):大小寫(xiě)無(wú)關(guān)   和B分別表示詞邊界和非詞邊界當(dāng)然上面這些只不過(guò)是最常用的,寫(xiě)出幾個(gè)正則表達(dá)式是沒(méi)有問(wèn)題了。接下來(lái)說(shuō)說(shuō)java。在java里有其自身的意義,所以在用s,d的時(shí)候要加上一個(gè)也就是\s 、\d \(等 java自1.4后開(kāi)始支持正則表達(dá)式,東西都放在java.util.regex包里,用Pattern生成一個(gè)模式對(duì)象,然后用matcher進(jìn)行匹配。如果要輸出匹配結(jié)果的話,一定要記得寫(xiě)上matcher.find();否則會(huì)出錯(cuò)。當(dāng)然也可以用替換,這就要看你的喜好拉。想看更多的例子就去jdk幫助文檔。   想了解更多或者掌握正則表達(dá)式的話,google去吧,那里是知識(shí)的海洋。

本文由 佛山中公財(cái)經(jīng) 整理發(fā)布。更多培訓(xùn)課程,學(xué)習(xí)資訊,課程優(yōu)惠,課程開(kāi)班,學(xué)校地址等學(xué)校信息,可以留下你的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢電話:13140882082

如果本頁(yè)不是您要找的課程,您也可以百度查找一下: