最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java matches類,Pattern類及matcher類用法示例

 更新時間:2019年03月22日 12:07:14   作者:白楊-M  
這篇文章主要介紹了Java matches類,Pattern類及matcher類用法,結(jié)合實例形式分析了java matches類,Pattern類及matcher類針對字符串常見操作技巧與相關(guān)注意事項,需要的朋友可以參考下

本文實例講述了Java matches類,Pattern類及matcher類用法。分享給大家供大家參考,具體如下:

Pattern類

正則表達式常見規(guī)則

A:字符
    x 字符 x。舉例:'a'表示字符a
    \\ 反斜線字符。
    \n 新行(換行)符 ('\u000A')
    \r 回車符 ('\u000D')
B:字符類
    [abc] a、b 或 c(簡單類),其中一個
    [^abc] 任何字符,除了 a、b 或 c(否定)
    [a-zA-Z] a到 z 或 A到 Z,兩頭的字母包括在內(nèi)(范圍)
    [0-9] 0到9的字符都包括
C:預(yù)定義字符類
    . 任何字符。我的就是.字符本身,怎么表示呢? \.
    \d 數(shù)字:[0-9]
    \w 單詞字符:[a-zA-Z_0-9]
        在正則表達式里面組成單詞的東西必須有這些東西組成
D:邊界匹配器
    ^ 行的開頭
    $ 行的結(jié)尾
    \b 單詞邊界
        就是不是單詞字符的地方。
        舉例:hello world?haha;xixi
E:Greedy 數(shù)量詞
    X? X,一次或一次也沒有
    X* X,零次或多次
    X+ X,一次或多次
    X{n} X,恰好 n 次
    X{n,} X,至少 n 次
    X{n,m} X,至少 n 次,但是不超過 m 次

正則表達式的常見功能

A:判斷功能

String類的public boolean matches(String regex)

//定義手機號碼的規(guī)則
 String regex = "1[38]\\d{9}";
//調(diào)用功能,判斷即可
boolean flag = phone.matches(regex);

fengqingyang@sina.com.cn

//定義郵箱的規(guī)則
String regex = "\\w+@\\w{2,6}(\\.\\w{2,3})+";
//調(diào)用功能,判斷即可
 boolean flag = email.matches(regex);

B:分割功能

String類的public String[] split(String regex)

//定義一個年齡搜索范圍
String ages = "18-24";
//定義規(guī)則
String regex = "-";
//調(diào)用方法
String[] strArray = ages.split(regex);
String s2 = "aa.bb.cc";
String[] str2Array = s2.split("\\.");
//硬盤上的路徑,我們應(yīng)該用\\替代\
String s4 = "E:\\JavaSE\\day14\\avi";
String[] str4Array = s4.split("\\\\");

把字符串分割排序

package cn.itcast_03;
import java.util.Arrays;
/*
 * 我有如下一個字符串:"91 27 46 38 50"
 * 請寫代碼實現(xiàn)最終輸出結(jié)果是:"27 38 46 50 91"
 *
 * 分析:
 *     A:定義一個字符串
 *     B:把字符串進行分割,得到一個字符串?dāng)?shù)組
 *     C:把字符串?dāng)?shù)組變換成int數(shù)組
 *     D:對int數(shù)組排序
 *     E:把排序后的int數(shù)組在組裝成一個字符串
 *     F:輸出字符串
 */
public class RegexTest {
  public static void main(String[] args) {
    // 定義一個字符串
    String s = "91 27 46 38 50";
    // 把字符串進行分割,得到一個字符串?dāng)?shù)組
    String[] strArray = s.split(" ");
    // 把字符串?dāng)?shù)組變換成int數(shù)組
    int[] arr = new int[strArray.length];
    for (int x = 0; x < arr.length; x++) {
      arr[x] = Integer.parseInt(strArray[x]);
    }
    // 對int數(shù)組排序
    Arrays.sort(arr);
    // 把排序后的int數(shù)組在組裝成一個字符串
    StringBuilder sb = new StringBuilder();
    for (int x = 0; x < arr.length; x++) {
      sb.append(arr[x]).append(" ");
    }
    //轉(zhuǎn)化為字符串
    String result = sb.toString().trim();
    //輸出字符串
    System.out.println("result:"+result);
  }
}

C:替換功能

String類的public String replaceAll(String regex,String replacement)

package cn.itcast_04;
/*
 * 替換功能
 *   String類的public String replaceAll(String regex,String replacement)
 *   使用給定的 replacement 替換此字符串所有匹配給定的正則表達式的子字符串。
 */
public class RegexDemo {
  public static void main(String[] args) {
    // 定義一個字符串
    String s = "helloqq12345worldkh622112345678java";
    // 直接把數(shù)字干掉
    String regex = "\\d+";
    String ss = "";
    String result = s.replaceAll(regex, ss);
    System.out.println(result);
  }
}

D:獲取功能

Pattern和Matcher

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

find():查找存不存在
group():獲取剛才查找過的數(shù)據(jù)

package cn.itcast_05;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
 * 獲取功能
 *    Pattern和Matcher類的使用
 *
 *    模式和匹配器的基本使用順序
 */
public class RegexDemo {
  public static void main(String[] args) {
    // 模式和匹配器的典型調(diào)用順序
    // 把正則表達式編譯成模式對象
    Pattern p = Pattern.compile("a*b");
    // 通過模式對象得到匹配器對象,這個時候需要的是被匹配的字符串
    Matcher m = p.matcher("aaaaab");
    // 調(diào)用匹配器對象的功能
    boolean b = m.matches();
    System.out.println(b);
    //這個是判斷功能,但是如果做判斷,這樣做就有點麻煩了,我們直接用字符串的方法做
    String s = "aaaaab";
    String regex = "a*b";
    boolean bb = s.matches(regex);
    System.out.println(bb);
  }
}

package cn.itcast_05;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
 * 獲取功能:
 * 獲取下面這個字符串中由三個字符組成的單詞
 * da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu?
 */
public class RegexDemo2 {
  public static void main(String[] args) {
    // 定義字符串
    String s = "da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu?";
    // 規(guī)則
    String regex = "\\b\\w{3}\\b";
    // 把規(guī)則編譯成模式對象
    Pattern p = Pattern.compile(regex);
    // 通過模式對象得到匹配器對象
    Matcher m = p.matcher(s);
    while (m.find()) {
      System.out.println(m.group());
    }
    // 注意:一定要先find(),然后才能group()
    // IllegalStateException: No match found
    // String ss = m.group();
    // System.out.println(ss);
  }
}

PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:

JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript

正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java正則表達式技巧大全》、《Java字符與字符串操作技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》和《Java文件與目錄操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • 解決java連接zookeeper很慢的問題

    解決java連接zookeeper很慢的問題

    這篇文章主要介紹了解決java連接zookeeper很慢的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 聊聊drools?session的不同

    聊聊drools?session的不同

    在drools中存在2種session,一種是有狀態(tài)的Session (Stateful Session),另外一種一種是無狀態(tài)的Session (Stateless Session,本文通過實例代碼給大家介紹drools?session的不同,感興趣的朋友一起看看吧
    2022-05-05
  • Spring框架中Bean的各種加載方式詳解

    Spring框架中Bean的各種加載方式詳解

    這篇文章主要介紹了Spring框架中Bean的各種加載方式詳解,在Java中,"Bean"通常指的是由Spring框架管理的對象實例,Spring提供了多種方式來加載Bean,以滿足不同的需求和場景,需要的朋友可以參考下
    2023-08-08
  • SpringBoot自定義錯誤處理邏輯詳解

    SpringBoot自定義錯誤處理邏輯詳解

    這篇文章主要介紹了SpringBoot自定義錯誤處理邏輯,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-10-10
  • Java文件管理操作的知識點整理

    Java文件管理操作的知識點整理

    這篇文章主要為大家詳細(xì)介紹了Java中文件管理操作的一些知識點和實現(xiàn)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2022-09-09
  • Java8如何構(gòu)建一個Stream示例詳解

    Java8如何構(gòu)建一個Stream示例詳解

    Java 8 是迄今為止在語義上改動上最大的一個平臺。下面這篇文章主要給大家介紹了關(guān)于Java8如何構(gòu)建一個Stream的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • java計算自冪數(shù)和水仙花數(shù)

    java計算自冪數(shù)和水仙花數(shù)

    對于一個正整數(shù)而言,長度是n,如果它的各位上的數(shù)字的n次方之和正好等于它本身,那么我們稱這樣的數(shù)為自冪數(shù),下面使用JAVA實現(xiàn)這個方法
    2014-03-03
  • spring+apollo動態(tài)獲取yaml格式的配置方式

    spring+apollo動態(tài)獲取yaml格式的配置方式

    這篇文章主要介紹了spring+apollo動態(tài)獲取yaml格式的配置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • rocketmq client 日志的問題處理方式

    rocketmq client 日志的問題處理方式

    這篇文章主要介紹了rocketmq client 日志的問題處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java中parallelStream().forEach()的踩坑日記

    Java中parallelStream().forEach()的踩坑日記

    本文主要介紹了Java中parallelStream().forEach()的踩坑日記,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06

最新評論

库伦旗| 鄂伦春自治旗| 天门市| 泸水县| 紫金县| 肇庆市| 普陀区| 拉孜县| 密山市| 扎囊县| 丰顺县| 陆川县| 靖州| 会昌县| 滦平县| 青川县| 托克逊县| 汉川市| 那曲县| 瓦房店市| 清水县| 宁陵县| 丰宁| 梓潼县| 阿勒泰市| 磐石市| 太仆寺旗| 林口县| 洛阳市| 荆州市| 县级市| 鄂伦春自治旗| 江安县| 江川县| 越西县| 黎平县| 南部县| 通城县| 武义县| 克什克腾旗| 建德市|