久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

Java正則表達式學習教程

本教程旨在幫助你駕馭Java正則表達式,同時也幫助我復習正則表達式。

什么是正則表達式?

正則表達式定義了字符串的模式。正則表達式可以用來搜索、編輯或處理文本。正則表達式并不僅限于某一種語言,但是在每種語言中有細微的差別。Java正則表達式和Perl的是最為相似的。

Java正則表達式的類在 java.util.regex 包中,包括三個類:Pattern,Matcher PatternSyntaxException。

Pattern對象是正則表達式的已編譯版本。他沒有任何公共構造器,我們通過傳遞一個正則表達式參數給公共靜態方法 compile 來創建一個pattern對象。
Matcher是用來匹配輸入字符串和創建的 pattern 對象的正則引擎對象。這個類沒有任何公共構造器,我們用patten對象的matcher方法,使用輸入字符串作為參數來獲得一個Matcher對象。然后使用matches方法,通過返回的布爾值判斷輸入字符串是否與正則匹配。
如果正則表達式語法不正確將拋出PatternSyntaxException異常。
讓我們在一個簡單的例子里看看這些類是怎么用的吧

  package com.journaldev.util;     import java.util.regex.Matcher;  import java.util.regex.Pattern;     public class RegexExamples {       public static void main(String[] args) {      // using pattern with flags      Pattern pattern = Pattern.compile("ab", Pattern.CASE_INSENSITIVE);      Matcher matcher = pattern.matcher("ABcabdAb");      // using Matcher find(), group(), start() and end() methods      while (matcher.find()) {        System.out.println("Found the text "" + matcher.group()            + "" starting at " + matcher.start()            + " index and ending at index " + matcher.end());      }         // using Pattern split() method      pattern = Pattern.compile("\W");      String[] words = pattern.split("one@two#three:four$five");      for (String s : words) {        System.out.println("Split using Pattern.split(): " + s);      }         // using Matcher.replaceFirst() and replaceAll() methods      pattern = Pattern.compile("1*2");      matcher = pattern.matcher("11234512678");      System.out.println("Using replaceAll: " + matcher.replaceAll("_"));      System.out.println("Using replaceFirst: " + matcher.replaceFirst("_"));    }     }

既然正則表達式總是和字符串有關, Java 1.4對String類進行了擴展,提供了一個matches方法來匹配pattern。在方法內部使用Pattern和Matcher類來處理這些東西,但顯然這樣減少了代碼的行數。

Pattern類同樣有matches方法,可以讓正則和作為參數輸入的字符串匹配,輸出布爾值結果。

下述的代碼可以將輸入字符串和正則表達式進行匹配。

  String str = "bbb";  System.out.println("Using String matches method: "+str.matches(".bb"));  System.out.println("Using Pattern matches method: "+Pattern.matches(".bb", str));  

所以如果你的需要僅僅是檢查輸入字符串是否和pattern匹配,你可以通過調用String的matches方法省下時間。只有當你需要操作輸入字符串或者重用pattern的時候,你才需要使用Pattern和Matches類。

注意由正則定義的pattern是從左至右應用的,一旦一個原字符在一次匹配中使用過了,將不會再次使用。

例如,正則“121”只會匹配兩次字符串“31212142121″,就像這樣“_121____121″。
正則表達式通用匹配符號

Java正則表達式學習教程

Java正則表達式學習教程

Java正則表達式元字符

Java正則表達式學習教程

有兩種方法可以在正則表達式中像一般字符一樣使用元字符。

在元字符前添加反斜杠()
將元字符置于Q(開始引用)和E(結束引用)間
正則表達式量詞

量詞指定了字符匹配的發生次數。

Java正則表達式學習教程

量詞可以和character classes和capturing group一起使用。

例如,[abc]+表示a,b或c出現一次或者多次。

 (abc)+表示capturing group “abc”出現一次或多次。我們即將討論capturing group。

正則表達式capturing group

Capturing group是用來對付作為一個整體出現的多個字符。你可以通過使用()來建立一個group。輸入字符串中和capturing group相匹配的部分將保存在內存里,并且可以通過使用Backreference調用。

你可以使用matcher.groupCount方法來獲得一個正則pattern中capturing groups的數目。例如((a)(bc))包含3個capturing groups; ((a)(bc)), (a) 和 (bc)。

你可以使用在正則表達式中使用Backreference,一個反斜杠()接要調用的group號碼。

Capturing groups和Backreferences可能很令人困惑,所以我們通過一個例子來理解。

  System.out.println(Pattern.matches("(\w\d)\1", "a2a2")); //true    System.out.println(Pattern.matches("(\w\d)\1", "a2b2")); //false    System.out.println(Pattern.matches("(AB)(B\d)\2\1", "ABB2B2AB")); //true    System.out.println(Pattern.matches("(AB)(B\d)\2\1", "ABB2B3AB")); //false  

在第一個例子里,運行的時候第一個capturing group是(wd),在和輸入字符串“a2a2″匹配的時候獲取“a2″并保存到內存里。因此1是”a2”的引用,并且返回true。基于相同的原因,第二行代碼打印false。

試著自己理解第三行和第四行代碼。:)

現在我們來看看Pattern和Matcher類中一些重要的方法。

我們可以創建一個帶有標志的Pattern對象。例如Pattern.CASE_INSENSITIVE可以進行大小寫不敏感的匹配。Pattern類同樣提供了和String類相似的split(String) 方法

Pattern類toString()方法返回被編譯成這個pattern的正則表達式字符串。

Matcher類有start()和end()索引方法,他們可以顯示從輸入字符串中匹配到的準確位置。

Matcher類同樣提供了字符串操作方法replaceAll(String replacement)和replaceFirst(String replacement)。

現在我們在一個簡單的java類中看看這些函數是怎么用的。

  package com.journaldev.util;     import java.util.regex.Matcher;  import java.util.regex.Pattern;     public class RegexExamples {       public static void main(String[] args) {      // using pattern with flags      Pattern pattern = Pattern.compile("ab", Pattern.CASE_INSENSITIVE);      Matcher matcher = pattern.matcher("ABcabdAb");      // using Matcher find(), group(), start() and end() methods      while (matcher.find()) {        System.out.println("Found the text "" + matcher.group()            + "" starting at " + matcher.start()            + " index and ending at index " + matcher.end());      }         // using Pattern split() method      pattern = Pattern.compile("\W");      String[] words = pattern.split("one@two#three:four$five");      for (String s : words) {        System.out.println("Split using Pattern.split(): " + s);      }         // using Matcher.replaceFirst() and replaceAll() methods      pattern = Pattern.compile("1*2");      matcher = pattern.matcher("11234512678");      System.out.println("Using replaceAll: " + matcher.replaceAll("_"));      System.out.println("Using replaceFirst: " + matcher.replaceFirst("_"));    }     }  

上述程序的輸出:

  Found the text "AB" starting at 0 index and ending at index 2  Found the text "ab" starting at 3 index and ending at index 5  Found the text "Ab" starting at 6 index and ending at index 8  Split using Pattern.split(): one  Split using Pattern.split(): two  Split using Pattern.split(): three  Split using Pattern.split(): four  Split using Pattern.split(): five  Using replaceAll: _345_678  Using replaceFirst: _34512678

這是不是一個很全面的Java正則表達式學習教程,希望對大家的學習有所幫助。

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
免费成人在线视频观看| 国产成人精品一区二区免费看京| 老牛影视精品| 日韩伦理一区| 欧美a级一区| 在线亚洲欧美| 日本不卡视频在线观看| **爰片久久毛片| 精品黄色一级片| 亚洲综合在线电影| 狠狠干综合网| 亚洲2区在线| 国产精品久久久久毛片大屁完整版| 日本视频在线一区| 国产亚洲电影| 国产精品高颜值在线观看| 国产亚洲一区二区手机在线观看 | | 亚洲综合小说| 国产精品中文字幕制服诱惑| 日韩久久电影| 好吊一区二区三区| 国产欧美日韩一级| 亚洲一级少妇| 亚洲v天堂v手机在线| 精品国产亚洲一区二区三区在线| 亚洲91久久| 日韩三级视频| а√天堂8资源中文在线| 欧美福利一区| 国产日韩欧美一区二区三区| 日韩中文在线电影| 亚洲精品乱码| 丁香六月综合| 亚洲男人在线| 精品亚洲美女网站| 日韩中文字幕在线一区| 国产成人精品亚洲线观看| japanese国产精品| 国产激情精品一区二区三区| 一区二区亚洲精品| 久久精品国产亚洲一区二区三区| 91国语精品自产拍| 麻豆视频久久| 日韩专区欧美专区| 日韩国产专区| 国产精品传媒麻豆hd| 99视频精品免费观看| 精品少妇一区| 亚洲69av| 丝袜a∨在线一区二区三区不卡| 久久精品国产99国产| 六月婷婷一区| 久久久久99| 久久亚洲道色| 日本欧美一区| 亚洲一区二区毛片| www成人在线视频| 麻豆国产欧美日韩综合精品二区| 亚洲精选av| 亚洲高清影视| 日韩伦理在线一区| 国产精品久一| 日本成人手机在线| 国产一区成人| 日韩欧美中文| 国产精品毛片视频| 国产精品美女| 欧美sss在线视频| 成人在线免费观看网站| 91av一区| 婷婷综合国产| 美日韩精品视频| 成人av二区| 日韩高清中文字幕一区二区| 国产精品久久久久久久久久久久久久久 | 国产精品久久乐| 最新亚洲国产| 亚洲一区二区免费看| 亚洲国产专区校园欧美| 神马日本精品| 午夜精品久久久久久久久久蜜桃| 成人国产精选| 麻豆mv在线观看| 久久精品二区亚洲w码 | 青青草伊人久久| 日韩激情网站| 97精品久久| 日韩av一区二| 日韩精品久久理论片| 亚洲欧美久久精品| 日韩一区二区三区精品| 亚洲精品人人| 91麻豆精品激情在线观看最新| 日韩黄色av| 国产日韩视频| 精品久久电影| 在线观看精品| 欧美成人日韩| 亚洲一区久久| 中文在线日韩| 奇米色欧美一区二区三区| 国产精选久久| 日本激情一区| 神马午夜久久| 亚洲综合欧美| 亚洲最大av| 国产欧美日韩亚洲一区二区三区| 美女国产一区二区三区| 日韩成人a**站| 亚洲v在线看| 亚洲激情社区| 日韩在线观看中文字幕| 91欧美极品| 国产精品亚洲综合久久| 精品淫伦v久久水蜜桃| 中文在线а√天堂| 欧美日韩国产在线一区| 视频国产精品| 久久精品天堂| 欧美 日韩 国产一区二区在线视频| 99视频+国产日韩欧美| 亚洲2区在线| 国产一区二区三区亚洲综合| 999国产精品| 天堂va在线高清一区| 久久精品九色| 一区福利视频| 国产精品久久久久久久久免费高清| 黄色网一区二区| 午夜精品婷婷| 久久精品97| 99成人超碰| 日韩高清不卡一区二区| 国产v日韩v欧美v| 香蕉久久久久久久av网站| 国产精品中文字幕亚洲欧美| 色综合www| 日韩av中文字幕一区二区三区| 日本不卡免费高清视频在线| 亚洲五月综合| 麻豆网站免费在线观看| 综合激情五月婷婷| 国产aa精品| 蜜臀久久久99精品久久久久久| 国产日产精品_国产精品毛片 | 国产一区二区三区91| 欧美日韩国产一区精品一区| 日韩中文字幕| 欧美日韩精品免费观看视完整| 一级成人国产| 色婷婷狠狠五月综合天色拍| 日本天堂一区| 亚洲色诱最新| 中文字幕色婷婷在线视频| 午夜久久av| 欧美不卡视频| 91亚洲一区| 亚洲日本三级| 日韩国产欧美一区二区| 欧美一级一区| 好看的av在线不卡观看| 成人黄色av| 国产精品夜夜夜| 久久亚洲风情| 蜜桃av.网站在线观看| 欧美一级一区| 日韩精品一级二级 | 欧美日韩中出| 日韩一区精品字幕| 日韩在线短视频| 精品网站aaa| 欧美色综合网| 亚洲毛片在线免费| 伊人精品在线| 成人看片网站| 国产伊人久久| 国产日韩欧美一区二区三区| 国产亚洲福利| 天堂资源在线亚洲| yellow在线观看网址| 久久99精品久久久久久园产越南| 免费久久精品视频| 不卡在线一区| 亚洲欧美综合| 成人台湾亚洲精品一区二区| 欧美影院精品| 中文字幕av一区二区三区四区| 欧美成人日韩| 久久一区二区三区电影| 岛国av在线播放| 国产一区二区三区视频在线| 国产精品二区影院| 国产精品magnet| 国产精品三p一区二区| 日韩黄色av| 日精品一区二区三区| 四虎成人精品一区二区免费网站| 日韩一区二区免费看| 亚洲精品国产偷自在线观看|