正規表示式學習筆記

2021-09-02 17:34:58 字數 2101 閱讀 4443

正規表示式(regular expression)是一種表達文字模式(即字串結構)的方法,有點像字串的模板,常常用來按照「給定模式」匹配文字

新建乙個正規表示式:

var reg= /xyz/; 或者 var reg = new regexp(『xyz』);

它們的主要區別是,第一種方法在引擎編譯**時,就會新建正規表示式,第二種方法在執行時新建正規表示式,所以前者的效率較高。

例項方法:

test:乙個字串中測試是否匹配的regexp方法,它返回true或者false;

/cat/.test('cats and dogs') // true
exec:乙個字串中執行查詢匹配的regexp方法,它返回乙個陣列(未匹配到則返回null)

/x/.exec('x124') // ["x"]
match:乙個字串中執行查詢匹配的string方法,它返回乙個陣列或者在未匹配到時返回null

/x/.match('x124') // ["x"]
如果正規表示式帶有g修飾符,則該方法與正則物件的exec方法行為不同

var s = 'abba';

var r = /a/g;

s.match(r) // ["a", "a"]

r.exec(s) // ["a"]

search:乙個字串在測試匹配的string方法,它返回匹配到的位置索引,或者在失敗是返回-1

'x123'.search(/x/) //0
replace:乙個字串在執行查詢匹配的string方法,並且使用替換字串退換掉匹配的字串

'aaa'.replace(/a/, 'b') // "baa"

'aaa'.replace(/a/g, 'b') // "bbb"

split:乙個使用正規表示式或者乙個固定字串分隔乙個字串,並將分隔後的子字串儲存到陣列中的string方法

// 正則分隔,去除多餘的空格

'a, b,c, d'.split(/, */)

// [ 'a', 'b', 'c', 'd' ]

利用正規表示式給數字新增千分號

//① 不是起始位置 後面連續3個數字 ,最終恰好匹配到結尾

// ^表示開頭 $表示結尾

// 正則/(?!^)(?=(\d)+$)/g

'10000000000000000'.replace(/(?!^)(?=(\d)+$)/g,',')

//② 千分號前必須要有乙個數字 連續3個數字到剛好匹配到結尾,

// 正則/(\d)(?=(\d)+$)/g

'10000000000000000'.replace(/(\d)(?=(?:\d)+$)/g,'$1,')

正則擷取中間字串

let str = '這是測試--sdfasdqwc--字串'

console.log(str.match(/(?<=測試--).+(?=--字元)/)[0])

正規表示式中 的$1,$2

$1,$2表達的是小括號裡面的內容

$1是第乙個小括號裡的內容,$2是第二個小括號裡面的內容,依此類推

比如(\d)(\d)(\d) 匹配"20200101"

$1是第乙個括號裡匹配的2020

$2是第二個括號裡匹配的01

$3是第三個括號裡匹配的01

正規表示式學習筆記

正規表示式學習日記 1 為萬用字元,表示任何乙個字元,例如 a.c 可以匹配 anc abc acc 2 在內可以指定要求匹配的字元,例如 a nbc c 可以匹配 anc abc acc 但不可以匹配 ancc a到z可以寫成 a z 0到9可以寫成 0 9 3 數量限定符號,表示匹配次數 或者叫...

正規表示式學習筆記

字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

正規表示式學習筆記

1.正規表示式是可用於在乙個檔案或字元裡查詢和替代文字的一種標準。它具有兩種標準 基本的正規表示式 bre 擴充套件的正規表示式 ere ere包括bre功能和另外其它的概念。2.表示或運算 3.匹配任何單個字元 4.匹配任何中包含的單個字元,如 張王李 三,匹配張 三 王三,李三 5.將排除 後跟...