正規表示式的預判模式和貪婪模式

2021-09-24 10:12:51 字數 805 閱讀 1193

1、 預判模式

1、適用於需要同時判斷多個條件的情況下。

2、使用方法為(?=表示式)案例

當我們需要驗證乙個字串,它必須符合8-15位,必須有大寫字母,小寫字母,數字,特殊字元,這時候如果我們對每個條件都單獨做判斷,那會使**非常多而且冗餘,這時候我們的預判模式就登場了。

let reg =

/^(?=.*[a-z])(?=.*[a-z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\\/]).$/

console.

log(reg.

test

('aaaaaaasda!'))

//false

console.

log(reg.

test

('1223456sda!'))

//true

這裡我們分析一下這行**,首先(?=.*[a-z])它的含義是當前字串必須滿足帶有小寫字母,(?=.*[a-z])代表必須有大寫字母,後邊的兩項也是一樣的,這樣我們就可以對於整個字串進行多次驗證,從而簡化**。

貪婪模式

1、貪婪模式形成的元凶是(.*)(.+),.會匹配所有字元,而*+又可以匹配多個,所以導致了該正則會匹配它之後的所有的字元,

2、取消貪婪模式我們可以用(.*?).+?

正規表示式 貪婪模式和非貪婪模式

在正規表示式中,存在兩種匹配模式。貪婪模式 正規表示式,在符合條件前提下,會盡可能多的匹配結果 懶惰模式 在正規表示式,如果符合條件的前提下,會盡可能少的匹配。在python中正規表示式預設是貪婪模式 個別語言也可能是非貪婪模式 貪婪模式就是總會嘗試匹配到更多的字元。非貪婪模式則反之,總是嘗試匹配盡...

正規表示式貪婪模式

貪婪匹配與非貪婪匹配 貪婪匹配 預設情況下,正規表示式使用最長匹配原則 也叫貪婪匹配原則 例如 要將 zoom 中匹配 zo?的部 分替換成 r 替換的的結果是 rom 如果要將 zoom 中匹配 zo 的部分替換成 r 替換後的結果是 rm 非貪婪匹配 當字元?緊隨其他限定符 之後時,匹配模式變成...

正規表示式, 貪婪模式

2018 2 28 10 15 09 星期三 好幾年沒怎麼用過正則了,正則有乙個常見的用法就是非貪婪模式 方法一 在 和 之後 表示非貪婪匹配 限定符都是貪婪的,因為它們會盡可能多的匹配文字,只有在它們的後面加上乙個?就可以實現非貪婪或最小匹配。這和 本身代表0次或1次的限制有關 除了換行符外的任意...