中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

正則表達(dá)式基礎(chǔ)知識(shí)

2018-07-20    來源:編程學(xué)習(xí)網(wǎng)

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用

  ECMAScript 3 開始支持正則表達(dá)式,其語法和 Perl 語法很類似,一個(gè)完整的正則表達(dá)式結(jié)構(gòu)如下:

var expression = / pattern / flags ;

  其中,模式(pattern)部分可以是任何簡(jiǎn)單或復(fù)雜的正則表達(dá)式,可以包含字符類、限定符、分組、向前查找以及反向引用。

  每個(gè)正則表達(dá)式都可帶有一或多個(gè)標(biāo)志(flags),用以標(biāo)明正則表達(dá)式的行為,正則表達(dá)式支持下列 3 個(gè)標(biāo)志:

g: 表示全局(global)模式,即模式將被應(yīng)用于所有字符串,而非在發(fā)現(xiàn)第一個(gè)匹配項(xiàng)時(shí)立即停止;

i : 表示不區(qū)分大小寫(case-insensitive)模式,即在確定匹配項(xiàng)時(shí)忽略模式與字符串的大小寫;

m:表示多行(multiline)模式,即在到達(dá)一行文本末尾時(shí)還會(huì)繼續(xù)查找下一行中是否存在與模式匹配的項(xiàng)。

  如果多個(gè)標(biāo)志同時(shí)使用時(shí),則寫成:gmi 。

  正則表達(dá)式的創(chuàng)建有兩種方式: new RegExp(expression) 和 直接字面量。

// 使用直接字面量創(chuàng)建
var exp1 = /(^\s+)|(\s+$)/g;
// 使用RegExp對(duì)象創(chuàng)建
var exp2 = new RegExp('(^\\s+)|(\\s+$)', 'g');  

  exp1 和 exp2 是兩個(gè)完全等價(jià)的正則表達(dá)式,需要注意的是,傳遞給 RegExp 構(gòu)造函數(shù)的兩個(gè)參數(shù)都是字符串,不能把正則表達(dá)式字面量傳遞給 RegExp 構(gòu)造函數(shù)。

  與其他語言中的正則表達(dá)式類似,模式中使用的所有元字符都必須轉(zhuǎn)義。正則表達(dá)式中的元字符包括:

( [ { \ ^ $ | ) ? * + .] }

  這些元字符在正則表達(dá)式中都有一或多種特殊用途,因此如果想要匹配字符串中包含的這些字符,就必須對(duì)它們進(jìn)行轉(zhuǎn)義。

// 匹配 .docx 
var exp = /\.docx/gi ; 

  由于 RegExp 構(gòu)造函數(shù)的模式參數(shù)是字符串,所以在某些情況下要對(duì)字符進(jìn)行雙重轉(zhuǎn)義。所有元字符都必須雙重轉(zhuǎn)義,那些已經(jīng)轉(zhuǎn)義過的字符也是如此。 

// 對(duì) \. 再次轉(zhuǎn)義
var exp = new RegExp('\\.docx', 'gi');

//匹配 \n 
var exp1 = /\\n/g; //對(duì)\n中的\轉(zhuǎn)義
var exp2 = new RegExp('\\\\n', 'g'); // 對(duì) \\n 再次轉(zhuǎn)義

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:從Chrome源碼看WebSocket

下一篇:善于單挑卻難以協(xié)作,構(gòu)建多智能體AI系統(tǒng)為何如此之難?