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

在Java中使用基本的正則表達(dá)式

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

一、正則表達(dá)式簡介

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

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

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

代碼實戰(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));  //匹配到的整個結(jié)果
            System.out.println(matcher.group(1));  //匹配到的第一個括號中的結(jié)果
        }
    }

    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));  //匹配到的整個結(jié)果
            System.out.println(matcher.group(1));  //匹配到的第一個括號中的結(jié)果
        }
    }

    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));  //匹配到的整個結(jié)果
        }
    }

    /**
     * 貪婪匹配
     * 匹配中間數(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));  //匹配到的整個結(jié)果

        }

    }

    /**
     * .*?非貪婪匹配
     * @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));
        }
    }
    
	/**
     * 正則表達(dá)式字符串也可以不編譯直接使用
     * @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 對象是一個正則表達(dá)式的編譯表示
  • Matcher 類
    Matcher 對象是對輸入字符串進(jìn)行解釋和匹配操作的引擎
  • find()方法
    嘗試查找與該模式匹配的輸入序列的下一個子序列,直到搜索到輸入序列結(jié)束
    可以從指定位置開始匹配find(int start)

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    MyBatisPlus查詢投影與查詢條件詳細(xì)講解

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

    java中ThreadPoolExecutor常識匯總

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

    jmeter正則表達(dá)式的使用

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

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

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

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

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

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

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

最新評論

法库县| 九江市| 德兴市| 通城县| 从化市| 贞丰县| 安徽省| 阿尔山市| 中西区| 吉林市| 连州市| 宿松县| 马边| 孝昌县| 涿州市| 宣威市| 麻阳| 六安市| 永登县| 讷河市| 繁昌县| 临安市| 凤台县| 天台县| 香港| 温宿县| 晋中市| 鞍山市| 贡觉县| 遵义市| 桂林市| 绿春县| 莲花县| 遵化市| 定结县| 德格县| 钟山县| 连山| 许昌县| 锡林浩特市| 东乌珠穆沁旗|