久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當前位置:首頁  >  技術(shù)干貨  > 正則表達式中貪婪模式和非貪婪模式的區(qū)別在哪里

正則表達式中貪婪模式和非貪婪模式的區(qū)別在哪里

來源:千鋒教育
發(fā)布人:yyy
時間: 2023-06-28 16:10:00 1687939800

  正則表達式中的貪婪模式和非貪婪模式是指量詞匹配時的兩種不同匹配方式,它們的區(qū)別在于匹配時的優(yōu)先級和匹配的范圍。

  在貪婪模式下,匹配器盡可能多地匹配符合要求的字符,直到不能再匹配為止。例如,正則表達式 a.*b 在匹配字符串 "abbcab" 時,會匹配整個字符串 "abbcab",而不是期望的 "ab"。

  在非貪婪模式下,匹配器盡可能少地匹配符合要求的字符,直到滿足要求為止。例如,正則表達式 a.*?b 在匹配字符串 "abbcab" 時,只會匹配到第一個 "ab",而不是整個字符串。

  在正則表達式中,使用 ? 后綴可以將量詞從貪婪模式切換為非貪婪模式。例如,*? 表示非貪婪的零次或多次匹配,而 +? 表示非貪婪的一次或多次匹配。

  總的來說,貪婪模式和非貪婪模式的區(qū)別在于匹配時的優(yōu)先級和匹配的范圍,選擇合適的模式取決于具體的匹配需求。如果需要盡可能多地匹配字符,就應(yīng)該使用貪婪模式;如果需要盡可能少地匹配字符,就應(yīng)該使用非貪婪模式。

  假設(shè)有一個字符串 "abbbc",要用正則表達式匹配其中的子串 "ab+c",其中 + 表示至少一個 b。

  使用貪婪模式時,可以使用正則表達式 "ab+c",這個表達式會匹配整個字符串 "abbbc"。

String str = "abbbc";
Pattern pattern = Pattern.compile("ab+c");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group()); // 輸出 "abbbc"
}

   使用非貪婪模式時,可以在量詞后面添加一個問號,使用正則表達式 "ab+?c",這個表達式會匹配到第一個 "abbc" 子串。

String str = "abbbc";
Pattern pattern = Pattern.compile("ab+?c");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group()); // 輸出 "abbc"
}

   可以看到,貪婪模式和非貪婪模式的區(qū)別在于匹配的范圍,前者匹配整個字符串,后者只匹配到第一個符合要求的子串。

tags: 貪婪模式
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
什么是雙機熱備?

一、雙機熱備的原理雙機熱備是指在系統(tǒng)中配置兩臺服務(wù)器(主服務(wù)器和備份服務(wù)器),兩者通過高速網(wǎng)絡(luò)連接進行實時數(shù)據(jù)同步和狀態(tài)同步。主服務(wù)器...詳情>>

2023-10-15 06:37:02
偏最小二乘支持向量機和支持向量機回歸的區(qū)別是什么?

1.模型構(gòu)建的理論基礎(chǔ)不同支持向量機回歸(SVR)基于統(tǒng)計學(xué)習(xí)理論,其主要思想是找到一個超平面,使得大部分數(shù)據(jù)點都在這個超平面的一定范圍內(nèi),...詳情>>

2023-10-15 06:30:45
VAE、GAN和transformer有什么區(qū)別?

1.模型結(jié)構(gòu)不同VAE(變分自編碼器)是一種生成模型,其基于概率圖模型和自編碼器,能夠?qū)W習(xí)數(shù)據(jù)的潛在分布。GAN(生成對抗網(wǎng)絡(luò))同樣是一種生成...詳情>>

2023-10-15 06:10:12
什么是PLC?

一、什么是PLCPLC,全稱為 Programmable Logic Controller,中文名為可編程邏輯控制器。它是一種專為實現(xiàn)工業(yè)過程、生產(chǎn)線、機械裝置或某些其他...詳情>>

2023-10-15 05:26:08
為什么LTD獨立站就是Web3.0網(wǎng)站?

一、LTD獨立站的概念 LTD獨立站是指使用特定拔尖域名(如.com、.net、.org等)建立的獨立網(wǎng)站。LTD獨立站通常會有自己的服務(wù)器資源,可以自由地...詳情>>

2023-10-15 05:21:46