1. 程式人生 > >正則表示式之貪婪與非貪婪模式(II)

正則表示式之貪婪與非貪婪模式(II)

貪婪模式

正則表示式在匹配的時候會盡可能多的匹配,直至匹配失敗
如:

'123456789'.replace(/\d{3,7}/g,'X')

結果:

 "X89"

非貪婪模式

讓正則表示式儘可能少的匹配,也就是說一旦成功匹配就不在繼續嘗試
在量詞後加上問號:

'12345678'.replace(/\d{3,6}?/g,'X')

結果:

 "XX78"

相關推薦

linux 表示式 sed awk

sed 可以將資料進行替換,刪除,新增,選取等操作 sed [引數] [動作] 引數: -n :使用安靜模式 ,只有經過sed特殊處理的那一行才能被列出來 -i : 直接修改讀取檔案內容,而不是由螢幕輸出 -e

表示式貪婪匹配貪婪匹配

. :匹配除 "\n" 之外的任何單個字元。要匹配包括 '\n' 在內的任何字元,請使用像 '[.\n]' 的模式 * :匹配0個或多個 使用 .* 的話就可以匹配任意長度的任意字元,但是有時候在使用 .*時就可能匹配不到物品們想要的結果,例: import re

表示式貪婪貪婪模式(II)

貪婪模式 正則表示式在匹配的時候會盡可能多的匹配,直至匹配失敗 如: '123456789'.replace(/\d{3,7}/g,'X') 結果: "X89" 非貪婪模式 讓正

表示式--貪婪貪婪模式詳解

“.*”取得控制權後,由A後面的位置開始嘗試匹配,由於是貪婪模式,優化嘗試匹配,一直匹配到字串的結束位置,將控制權交給“"”。“"”取得控制權後,由於已經是字串的結束位置,匹配失敗,查詢可供回溯的狀態,將控制權交給“.*”,由“.*”讓出已匹配字元“.”。重複以上過程,直到後面“"”匹配了C處後面的字元“””

關於表示式數量詞的貪婪貪婪模式

在匹配正則的時候或許會遇到返回的結果多幾個字元或者少幾個字元,什麼原因呢,這個就是正則的貪婪與非貪婪模式,假設,我的匹配字元是: a = 'asdf444adfadf   adfsadf' 正則表示式的貪婪模式: [a-z]{2,6} 列印結果 ['asdf',

python表示式貪婪貪婪模式

之前做程式的時候看到過正則表示式的貪婪與非貪婪模式,今天用的時候就想不起來了,現在這裡總結一下,以備自己以後用到注意。 1.什麼是正則表示式的貪婪與非貪婪匹配   如:String str="abcaxc";     Patter p="ab.*c";   貪婪匹配:正則表示式一般趨向於最大長度匹配,

表示式貪婪貪婪模式

之前做程式的時候看到過正則表示式的貪婪與非貪婪模式,今天用的時候就想不起來了,現在這裡總結一下,以備自己以後用到注意。 1.什麼是正則表示式的貪婪與非貪婪匹配 如:String str="abcaxc";     Patter p="ab.*c";   貪婪匹配:正則表示式一般趨向於最大長度匹配,也就是所謂

[轉] 表示式貪婪貪婪模式

今天使用Notepad++時發現搜尋時需要正則匹配,到網上搜了下Notepad++中正則的用法,發現有個加+號是非貪婪匹配的東西,不太記得了,故到網上搜索,發現有用部落格一份: 之前做程式的時候看到過正則表示式的貪婪與非貪婪模式,今天用的時候就想不起來了,現在這裡總結一下,以備自己以後用到注意。 1.什麼

表示式貪婪貪婪

var s='120000|天津市,130000|河北省,210000|遼寧省,220000|吉林省,310000|上海市,320000|江蘇省,330000|浙江省,'; var r = /310000/|(.*?)(?:,)/ r.exec(s); s.match(

表示式貪婪貪婪模式

<script> try{ str="<p>abcdefg</p><p>abcdefghijkl</p>"; re1=str.match(/<p>[\W\w]+?<\/p>/ig); al

[ 轉載 ] 什麽是表達式的貪婪貪婪匹配

blog 環視 北京市 正則表達式 clas 第一個 pat exp com http://www.cnblogs.com/xudong-bupt/p/3586889.html 1.什麽是正則表達式的貪婪與非貪婪匹配 如:String str="abcaxc"; Patte

表達式:貪婪貪婪

move www emp echo 無法 rem 但是 耗資源 loaded 前言 在一段時間內,一直不知道.*和.*?之間的區別,一直單純的覺得兩者之間並沒有什麽區別,都是匹配任意字符,知道今天才知道其中的區別 簡要介紹 首先從一個簡單的問題的問題開始思考: 有這樣一個字

javascript表示式最長匹配(貪婪匹配)和最短匹配(懶惰匹配)

最近在閱讀RequireJS 2.1.15原始碼,原始碼開始處定義了一系列的變數,有4個正則表示式: var commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)

Python學習筆記模式匹配表示式使用和不使用表示式

 隨筆記錄方便自己和同路人查閱。 #------------------------------------------------我是可恥的分割線-------------------------------------------   假設你希望在字串中查詢電話號碼。你知道模式:3個數字,一

python表示式的懶惰匹配和貪婪匹配

第一次碰到這個問題的時候,確實不知道該怎麼辦,後來請教了一個大神,加上自己的理解,才瞭解是什麼意思,這個東西寫python的會經常用到,而且會特別頻繁,在此寫一篇部落格,希望可以幫到一些朋友。例:一個字串 “abcdacsdnd”    ①懶惰匹配        regex

java表示式捕獲分組Back引用

一.捕獲分組 java正則表示式中以()括起來的內容表示一個分組,像((A)(B(C)))這個表示式中,共存在四個分組: 1.ABC 2.A 3.BC 4.C 很容易發現,分組是按照左邊的括號出現的順序來標號的 這就是捕獲分組 二.Back引用 我們以下面這個正則表示式為例

表示式C程式中使用

POSIX規定了正則表示式的C語言庫函式,詳見regex(3)。我們已經學習了很多C語言庫函式的用法,讀者應該具備自己看懂man手冊的能力了。本章介紹了正則表示式在grep、sed、awk中的用法,學習要能夠舉一反三,請讀者根據regex(3)自己總結正則表示式在C語言中的用法,寫一些簡單的程式,例

java中表示式的瞭解實踐記錄

Pattern pattern = Pattern.compile("^\\S+/q/"); Matcher matcher = pattern.matcher(resultString); String qrcode=""; while(matcher.find()){ String path

Nginx表示式匹配操作符詳解

Nginx正則表示式之匹配操作符詳解 nginx可以在配置檔案中對某些內建變數進行判斷,從而實現某些功能。例如:防止rewrite、盜鏈、對靜態資源設定快取以及瀏覽器限制等等。由於nginx配置中有if指令,但是沒有對應else指令,所以判斷要分為匹配和不匹配。

JS表示式--?:

使用形如(?:pattern)的正則就可以避免儲存括號內的匹配結果。 ?:匹配冒號後的內容但是不獲取匹配結果;不進行儲存供以後使用  下面這個正則是為了實現只匹配以b或者c開頭的字串,一直匹配到換行字元,但是。可以使用“\1”來反向引用這個括號裡的子 正則表示式所匹配的內容。而且exec方法也會