<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    正則表達式的作用

    正則表達式的作用

    提供更強大的字符串處理能力,測試字符串內的模式,例如,可以測試輸入字符串,以查看字符串內是否出現電話號碼模式或身份證號碼模式。即數據驗證替換文本可以使用正則表達式來識別文檔中的特定文本,完全刪除該文本或者用其他文本替換它。

    基于模式匹配從字符串中提取子字符串可以查找文檔內或輸入域內特定的文本。

    Java中使用正則表達式

    正則表達式在字符串處理上有著強大的功能,sun在jdk1.4加入了對它的支持,jdk1.4中加入了java.util.regex包提供對正則表達式的支持。而且Java.lang.String類中的replaceAll和split函數也是調用的正則表達式來實現的。

    正則表達式對字符串的操作主要包括:

    1.字符串匹配

    2.指定字符串替換

    3.指定字符串查找

    4.字符串分割

    Pattern類

    Pattern類的實例表示以字符串形式指定的正則表達式,其語 法類似于Perl所用的語法。

    用字符串形式指定的正則表達式,必須先編譯成Pattern類的 實例。生成的模式用于創建Matcher對象,它根據正則表達式與任 意字符序列進行匹配。多個匹配器可以共享一個模式,因為它是非專屬的。

    用compile方法把給定的正則表達式編譯成模式,然后用 matcher方法創建一個匹配器,這個匹配器將根據此模式對給定輸 入進行匹配。pattern 方法可返回編譯這個模式所用的正則表達式。

    Matcher類

    通過調用某個模式的matcher方法,從這個模式生成匹配器。 匹配器創建之后,就可以用它來執行三類不同的匹配操作:

    matches方法根據此模式,對整個輸入序列進行匹配。

    lookingAt方法根據此模式,從開始處對輸入序列進 行匹配。

    find方法掃描輸入序列,尋找下一個與模式匹配的地方。

    這些方法都會返回一個表示成功或失敗的布爾值。如果匹配成功,通過查詢 匹配器的狀態,可以獲得更多的信息。

    構建正則表達式

    \d 等於 [0-9] 數字

    \D 等於 [^0-9] 非數字

    \s 等於 [ \t\n\x0B\f\r] 空白字符

    \S 等於 [^ \t\n\x0B\f\r] 非空白字符

    \w 等於 [a-zA-Z_0-9] 數字或是英文字

    \W 等於 [^a-zA-Z_0-9] 非數字與英文字

    $ 表示每行的結尾 . 匹配所有字符,包括空格、Tab字符甚至換行符 或 []方括號只允許匹配單個字符 ^ 符號稱為否符號。如果用在方括號內,表示不想要匹配的字符。 表示每行的開頭 ( ) 形成一組查詢

    import java.util.regex.*;
                public class RegexExample
                {
                public static void main(String[] args)
                {
                String str="aaabc efg ABC";
                String regEx="aaafff";
                Pattern p=Pattern.compile(regEx);//編譯成模式
                Matcher m=p.matcher(str);//創建一個匹配器
                boolean rs=m.find();
                if(rs)
                {
                System.out.println("include!!!");
                }
                else
                {
                System.out.println("no include!!!");
                }
                }
                }

     

    如果str中有regEx,那么rs為true,否則為flase。如果想在查找時忽略大小寫, 則可以寫成Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE); 提取 (從本例所給完整路徑中提取文件名)

    import java.util.regex.*;
                public class RegexExample2
                {
                public static void main(String[] args)
                {
                String regEx=".+\\\\(.+)$";
                String str="c:\\dir1\\dir2\\name.txt";
                Pattern p=Pattern.compile(regEx);
                Matcher m=p.matcher(str);
                boolean rs=m.find();
                for(int i=1;i<=m.groupCount();i++)
                {
                System.out.println(m.group(i)); //括號內匹配內容
                }
                }
                }

     

    以上的執行結果為name.txt,提取的字符串儲存在m.group(i)中,其中i最大值為m.groupCount(); 分割

    import java.util.regex.*;
                public class RegexExample3
                {
                public static void main(String[] args)
                {
                String regEx="::";
                Pattern p=Pattern.compile(regEx);
                String[] r=p.split("xd::abc::cde");
                for(int i=0;i<r.length;i++)
                {
                System.out.println(r[i]);
                }
                }
                }

     

    執行后,r就是{xd,abc,cde},其實分割時還有跟簡單的方法:

    String str="xd::abc::cde";

    String[] r=str.split("::");

    替換(刪除)

    import java.util.regex.*;
                public class RegexExample1
                {
                public static void main(String[] args)
                {
                String regEx="a+";//表示一個或多個a
                Pattern p=Pattern.compile(regEx);
                Matcher m=p.matcher("aaabbced a ccdeaa");
                String s=m.replaceAll("A");
                System.out.println(s);
                }
                }

     

    結果為"Abbced A ccdeA"

    如果寫成空串,既可達到刪除的功能,比如:

    String s=m.replaceAll("");

    結果為"bbced ccde"

    posted on 2007-11-23 12:47 都市淘沙者 閱讀(6338) 評論(1)  編輯  收藏 所屬分類: Java Basic/Lucene/開源資料

    評論

    # re: 正則表達式的作用 2014-04-16 17:00 23

    23  回復  更多評論   

    主站蜘蛛池模板: 亚洲AV成人片无码网站| 久操免费在线观看| 亚洲中文字幕无码永久在线| 日韩精品内射视频免费观看| 亚洲人成人无码.www石榴| 成人午夜亚洲精品无码网站| 国产人成免费视频网站| 色婷婷综合缴情综免费观看| 亚洲精品在线免费观看视频| 国产精品久免费的黄网站| 日韩精品在线免费观看| 国产精品亚洲精品久久精品| 亚洲激情在线视频| 免费真实播放国产乱子伦| 一区二区三区在线免费看| 理论秋霞在线看免费| 亚洲无线一二三四区| 伊人久久大香线蕉亚洲五月天| 99在线精品免费视频九九视| 国产乱妇高清无乱码免费| 亚洲香蕉久久一区二区| 亚洲人成人无码网www电影首页| 成人免费视频一区| 18禁美女黄网站色大片免费观看 | 亚洲熟女一区二区三区| 一个人在线观看视频免费| 日韩视频免费在线观看| 国产成人亚洲综合无| 亚洲一区在线免费观看| 亚洲AV无码一区二区乱孑伦AS| 免费一级特黄特色大片在线| 一二三四视频在线观看中文版免费 | 亚洲国产中文字幕在线观看| 亚洲一区在线免费观看| av永久免费网站在线观看| 国产精品日本亚洲777| 亚洲中文字幕在线无码一区二区| 亚洲AV无码一区二区乱孑伦AS| 亚洲精品无码成人片在线观看 | 成年人在线免费观看| xx视频在线永久免费观看|