国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

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

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

來源:千鋒教育
發布人:syq
時間: 2023-03-21 10:36:00 1679366160

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

貪婪模式和非貪婪模式的區別

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

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

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

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

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

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

1

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

2

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

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT