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

在Java中使用基本的正則表達式

 更新時間:2021年07月01日 08:55:27   作者:水墨之白  
這篇文章主要介紹了在Java中使用基本的正則表達式,本文通過簡要的案例,說明了很多場景下的正則表達式的用法,列出了正則表達式匹配規(guī)則的表格,需要的朋友可以參考下

一、正則表達式簡介

正則表達式是使用單個字符串來描述、匹配一系列匹配某個句法規(guī)則的字符串。爬蟲中解析html可以使用正則來方便的提取信息

二、正則表達式匹配規(guī)則

模式 描述
\w 匹配字母、數(shù)字、下劃線
\W 匹配字母、數(shù)字、下劃線
\s 匹配任意空白字符,相當于[\t\n\r\f]
\S 匹配任意非空字符
\d 匹配任意數(shù)字,相當于[0-9]
\D 匹配非數(shù)字的字符
\A 匹配字符串開頭
\Z 匹配字符串結尾,如果存在換行,只匹配到換行前的結束字符串
\z 匹配字符串結尾,如果存在換行,同時還會匹配換行符
\G 匹配最后匹配完成的位置
\n 匹配一個換行符
\t 匹配一個制表符
^ 匹配一行字符串的開頭
$ 匹配一行字符串的結尾
. 匹配任意字符,除了換行符
[^…] 不在[]中的字符,比如[^abc]匹配除了a、b、c之外的字符
* 匹配0個或多個表達式
+ 匹配1個或多個表達式
? 匹配0個或1個前面的正則表達式定義的片段,非貪婪方式
() 匹配括號內(nèi)的表達式,也表示一個組
{n} 精確匹配n個前面的表達式,比如\d{n},代表n個數(shù)字
{n,m} 匹配n到m次由前面正則表達式定義的片段,貪婪方式

代碼實戰(zhàn):

public class RegexAction {
    public static void main(String[] args) {
        String s = "Hello 123 4567 World_This is a Regex Demo";
        //match_1(s);
        //match_2(s);
        //match_3(s);
        //match_4(s);
        //match_5(s);
        match_6(s);
    }

    private static void match_1(String s) {
        Pattern pattern = Pattern.compile("^Hello\\s\\d\\d\\d\\s\\d{4}\\s\\w{10}");
        Matcher matcher = pattern.matcher(s);

        if(matcher.find()) {
            System.out.println(matcher.group(0));
        }
    }

    private static void match_2(String s) {
        Pattern pattern = Pattern.compile("Hello\\s(\\d+)\\s\\d{4}\\s\\w{10}");
        Matcher matcher = pattern.matcher(s);

        if(matcher.find()) {
            System.out.println(matcher.group(0));  //匹配到的整個結果
            System.out.println(matcher.group(1));  //匹配到的第一個括號中的結果
        }
    }

    private static void match_3(String s) {
        Pattern pattern = Pattern.compile("Hello\\s(\\d*)\\s\\d{4}\\s\\w{10}");
        Matcher matcher = pattern.matcher(s);

        if(matcher.find()) {
            System.out.println(matcher.group(0));  //匹配到的整個結果
            System.out.println(matcher.group(1));  //匹配到的第一個括號中的結果
        }
    }

    private static void match_4(String s) {
        Pattern pattern = Pattern.compile("Hello.*Demo");
        Matcher matcher = pattern.matcher(s);

        if(matcher.find()) {
            System.out.println(matcher.group(0));  //匹配到的整個結果
        }
    }

    /**
     * 貪婪匹配
     * 匹配中間數(shù)字,只能得到7
     * .*會盡可能多的匹配數(shù)據(jù)
     * @param s
     */
    private static void match_5(String s) {
        Pattern pattern = Pattern.compile("Hello.*(\\d+).*Demo");
        Matcher matcher = pattern.matcher(s);

        if(matcher.find()) {
            System.out.println(matcher.group(1));  //匹配到的整個結果

        }

    }

    /**
     * .*?非貪婪匹配
     * @param s
     */
    private static void match_6(String s) {
        Pattern pattern = Pattern.compile("Hello.*?(\\d+).*Demo");
        Matcher matcher = pattern.matcher(s);
        if(matcher.find())  {
            System.out.println(matcher.group());
            System.out.println(matcher.group(1));
        }
    }
    
	/**
     * 正則表達式字符串也可以不編譯直接使用
     * @param s
     */
    private static void match_7(String s) {
        String regex = "Hello.*?(\\d+).*Demo";
        boolean flag = s.matches(regex);
        System.out.println(flag);
    }

}
  • Pattern 類
    pattern 對象是一個正則表達式的編譯表示
  • Matcher 類
    Matcher 對象是對輸入字符串進行解釋和匹配操作的引擎
  • find()方法
    嘗試查找與該模式匹配的輸入序列的下一個子序列,直到搜索到輸入序列結束
    可以從指定位置開始匹配find(int start)

到此這篇關于在Java中使用基本的正則表達式的文章就介紹到這了,更多相關Java使用正則表達式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Spring事件監(jiān)聽機制使用和原理解析

    Spring事件監(jiān)聽機制使用和原理解析

    Spring的監(jiān)聽機制基于觀察者模式,就是就是我們所說的發(fā)布訂閱模式,這種模式可以在一定程度上實現(xiàn)代碼的解耦,本文將從原理上解析Spring事件監(jiān)聽機制,需要的朋友可以參考下
    2023-06-06
  • springboot的統(tǒng)一異常處理,使用@RestControllerAdvice詳解

    springboot的統(tǒng)一異常處理,使用@RestControllerAdvice詳解

    @RestControllerAdvice是Spring Boot中的全局異常處理注解,結合了@ControllerAdvice和@ResponseBody的功能,通過創(chuàng)建自定義異常類和全局異常處理器,可以實現(xiàn)統(tǒng)一異常處理,確保API的一致性和響應的標準化
    2024-12-12
  • java 二維碼的生成與解析示例代碼

    java 二維碼的生成與解析示例代碼

    本文主要介紹java二維碼的生成與解析,這里提供示例代碼以便大家參考和理解,希望能幫助開發(fā)Java 二維碼的朋友
    2016-08-08
  • Java struts2 package元素配置及實例解析

    Java struts2 package元素配置及實例解析

    這篇文章主要介紹了Java struts2 package元素配置及實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • MyBatisPlus查詢投影與查詢條件詳細講解

    MyBatisPlus查詢投影與查詢條件詳細講解

    這篇文章主要介紹了MyBatisPlus DQL編程控制中的查詢投影、查詢條件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • java中ThreadPoolExecutor常識匯總

    java中ThreadPoolExecutor常識匯總

    這篇文章主要介紹了java中ThreadPoolExecutor常識匯總,線程池技術在并發(fā)時經(jīng)常會使用到,java中的線程池的使用是通過調用ThreadPoolExecutor來實現(xiàn)的,需要的朋友可以參考下
    2019-06-06
  • jmeter正則表達式的使用

    jmeter正則表達式的使用

    在jmeter中,可以利用正則表達式提取器來幫助我們完成這一動作,本文就詳細的介紹一下應該如何使用,感興趣的可以了解一下
    2021-11-11
  • 解決SpringBoot連接SqlServer出現(xiàn)的問題

    解決SpringBoot連接SqlServer出現(xiàn)的問題

    在嘗試通過SSL與SQL?Server建立安全連接時,如果遇到“PKIX?path?building?failed”錯誤,可能是因為未能正確配置或信任服務器證書,當"Encrypt"屬性設置為"true"且"trustServerCertificate"屬性設置為"false"時,要求驅動程序使用安全套接字層(SSL)加密與SQL?Server建立連接
    2024-10-10
  • SpringBoot+BootStrap多文件上傳到本地實例

    SpringBoot+BootStrap多文件上傳到本地實例

    這篇文章主要介紹了SpringBoot+BootStrap多文件上傳到本地實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Spring?@Cacheable注解類內(nèi)部調用失效的解決方案

    Spring?@Cacheable注解類內(nèi)部調用失效的解決方案

    這篇文章主要介紹了Spring?@Cacheable注解類內(nèi)部調用失效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評論

深水埗区| 比如县| 义马市| 临颍县| 沙河市| 许昌县| 祁连县| 瓦房店市| 曲松县| 汽车| 汝州市| 平远县| 元朗区| 谢通门县| 永和县| 武汉市| 绥德县| 呈贡县| 广南县| 蒲江县| 宁都县| 襄汾县| 大理市| 龙州县| 始兴县| 铁力市| 财经| 汶川县| 磐石市| 镇安县| 正阳县| 射阳县| 南华县| 托克托县| 唐山市| 富顺县| 图木舒克市| 白玉县| 庆元县| 浦县| 英超|