天才教育網(wǎng)合作機構 > 編程語言培訓機構 > java培訓機構 >

佛山中公財經(jīng)

歡迎您!
朋友圈

13140882082

全國統(tǒng)一學習專線 9:00-21:00

位置:編程語言培訓資訊 > java培訓資訊 > 在java中使用正則表達式

在java中使用正則表達式

日期:2021-07-08 11:52:31     瀏覽:394    來源:佛山中公財經(jīng)
正則表達式(regular expression)一個又經(jīng)典又實用又陌生的東西。說他經(jīng)典因為"正則表達式"在1956年就有了,說他實用是因為各種語言里都有它的身影,說他陌生是因為使用的人不很多。   今天遇到了,不妨就了解一下吧。反正有益無害,絕對是綠色產(chǎn)品。正則表達式主要應用于文本的處理,如檢索,替換,檢查錯誤,文字拆分...實在是一言難盡,如果要全部寫出來,一本書都不差不多。還好oreilly已經(jīng)為我們出了一本了。   講具體內(nèi)容以前先給個完整的例子,這樣能有個感性的認識。 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或水膩的便了。反正運行起來就是了輸出結果:xhinker@163.com 當你看完下面的東西回頭再看看這段程序就會發(fā)現(xiàn),這不過是小菜一碟   字符和字符類

表格 A: 字符匹配

操作

解釋

例子

結果

.

單個字符匹配

   .ord

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

[ ]

多個字符列表

   [cng]

只會匹配 “cord”, “nord”, 和 “gord”

[^ ]

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

   [^cn]

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

  [a-zA-Z]

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

   [^0-9]

匹配 “Aord”, “aord”, 等. 但不會匹配“2ord”, 等.

 

表格 B: 重復操作符

操作

解釋

例子

結果

?

匹配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”等

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

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

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