正規表示式

2021-08-29 01:28:16 字數 2166 閱讀 6445

reg.test():匹配     reg.exec():捕獲

^:以...作為開頭

$:以...作為結尾

\: 表示轉義,有特殊意義轉為普通意義 ,

\d:匹配任意乙個非\n數字(只能是乙個數字)

\w:匹配數字字母下劃線

\b:匹配邊界(注意:開頭  結尾  空格 換行 都是邊界)

\n:匹配換行

\s:匹配乙個空白符(通常都是空格和換行)

*:出現0次或者多次

+:出現1次或者多次

?:出現0次或者1次

:出現n次

:至少出現n次

:出現次數在n到m次

例:匹配手機號:/^1\d$/    匹配零點幾的小數:/^0\.+$/

/x|y/:x或者y中的任意乙個

/[a-z]/:a-z中任意乙個   (注意 - 的左右問題,要按順序!)

/[^xyz]/:除了xyz中任意乙個字元( ^ 與  [ ] 搭配表示  除了)

正規表示式捕獲的懶惰性:在找到乙個匹配的內容時,就停止了捕獲查詢

解決懶惰性的方法:給正規表示式加乙個全域性修飾符g。雖然解決了懶惰性,但是exec一次只能捕獲一次,所以只能一次一次的進行捕獲,直到結果為null,就全部捕獲到想要的內容。

var reg=/a\d/g;

var str="aaaaa1ba25555a3";

// console.log(reg.exec(str));

// console.log(reg.exec(str));

// console.log(reg.exec(str));

// console.log(reg.exec(str));

我們可以自己寫乙個while迴圈把捕獲到的內容都放到乙個陣列中:

var ary=;

var val=reg.exec(str);

while (val)

console.log(ary);

在字串中提供了match方法,可以一次性捕獲到所有符合條件的內容:

var reg=/\d/g;

var str="js12css34html56";

console.log(str.match(reg)); //["12", "34", "56"]

如果想單獨捕獲到內容,可以使用小括號將需要捕獲到的內容括起來,不過不想捕獲到某部分內容,可以在小括號中最前面加入?:即可   (?:  )

var str = "html:1000+css:1000+js:10000+vue:1000+react:1000+node:1000";

var reg = /(?:^|\+)([a-z]:(\d+))/g;

console.log(reg.exec(str));

console.log(reg.exec(str));

console.log(reg.exec(str));

console.log(reg.exec(str));

console.log(reg.exec(str));

console.log(reg.exec(str));

注意:正則加上g,使用match方法不會捕獲到分組內容

正則捕獲的貪婪性:當出現量詞元字元時,按照最大長度來捕獲內容,要想解決貪婪性,在量詞元字元後面加乙個?即可

//貪婪性

var reg = /\d+/g;

console.log(reg.exec("123asdfgh45d4567d"));//123

console.log(reg.exec("123asdfgh45d4567d"));//45

console.log(reg.exec("123asdfgh45d4567d"));//4567

var reg = /\d+?/g;

console.log(reg.exec("123asdfgh45d4567d")); //1

console.log(reg.exec("123asdfgh45d4567d")); //2

console.log(reg.exec("123asdfgh45d4567d")); //3

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...