? ??????????????????????????????????????????正則的基本用法
正則表達(dá)式用來干啥:
????????????處理字符串
? ? ? ? ? ? 相當(dāng)于過濾的性質(zhì),找到符合自己要求的字符集
怎么樣去創(chuàng)建一個(gè)正則表達(dá)式:
? ? ? ? ? ? 1.例如:var? newArr = /條件/修飾符(修飾符可選)
? ? ? ? ? ? ? 修飾符:g全局匹配從匹配到的一個(gè)結(jié)果開始繼續(xù)往后進(jìn)行匹配,直到字符串結(jié)束
? ? ? ? ? ? ? ?i不區(qū)分大小寫匹配
? ? ? ? ? ? ? ?m多行匹配
? ? ? ? ? ? 2.new RegExp(‘條件’,’修飾符’);? regualar exporession(縮寫 new RegExp)
? ? ? ? ? ? ? ? 例如:var? newArr = ‘字符串’;
? ? ? ? ? ? ? ? ? ? ? ? ? ?var? oneArr? =?newArr.replace(new RegExp(/條件/修飾符),‘替換的元素’);
用法:
????(1)正則對(duì)象.exec(字符串)
????????????如果未找到符合正則匹配模式的字符集則返回null
????????????如果找到則返回一個(gè)數(shù)組
????????????下標(biāo)為0的元素即匹配到的字符集index即此字符集的起始下標(biāo)input原字符串
? ? ? ? ? ? 例如:var newArr = '字符串';
? ? ? ? ? ? ????????????var?reg = /正則/;
? ? ? ? ? ????????????? var str = reg.exec(newArr);
????(2)正則對(duì)象.test(str)
????????????返回一個(gè)boolean值
????????????字符串中有符合正則匹配模式的字符集返回true否則返回false
? ? ? ? ? ? 例如:var newArr = '字符串';
????????????????????????var?reg = /正則/;
? ??????????????????????var str = reg.test(newArr);
? ??(3)字符串.replace(正則,’我要替換的元素’)
? ? ? ? ? ? 例如:var newArr = '字符串';
? ??????????????????????var?reg = newArr.replace(/條件/修飾符,‘要替換的元素’)
? ? (4)字符串.search(reg)如果匹配到了字符集,則返回該字符集的起始下標(biāo)
? ? ? ? ? ? ? 例如:var newArr = '字符串';
????????????????????????var?reg = /正則/;
? ? ? ? ? ? ? ? ? ? ? ? var str = newArr?.search(reg);
? ? ? ?(5)字符串.match(reg)
????????????????如果沒有匹配到目標(biāo)字符集返回null
????????????????如果匹配到了一個(gè)字符集則返回?cái)?shù)組下標(biāo)為0的元素即匹配到的字符集
? ? ? ? ? ? ? ? index即此字符集的起始下標(biāo)input原字符串
????????????????如果匹配到了多個(gè)字符集則返回匹配到的字符集組成的數(shù)組
? ? ? ? ? ? ? ? 例如:var newArr = '字符串';
? ? ? ? ? ? ? ? ? ? ? ? ? ?var?reg = /正則/;
? ? ? ? ? ? ? ? ? ? ? ? ? ? var str =?newArr.match(reg)
正則/文本字符char本意字符
????元字符:
????????(1)匹配次數(shù)
????????????????????1) {number}匹配前面的字符重復(fù)number次
????????????????????2){num1,num2}匹配前面的字符重復(fù)num1到num2次
????????????????????3)*匹配前面的字符重復(fù)0到正無窮次
????????????????????4)+匹配前面的字符重復(fù)1到正無窮次
????????????????????5)?匹配前面的字符0到1次
????????????????????極限條件下得到的結(jié)果包括字符串的結(jié)束符
? ? ? ?(2)集合
????????????????????[]匹配中括弧中的一個(gè)字符即可
????????(3)分組
????????????????????()改變模式的優(yōu)先級(jí)
????????(4)錨定字符
????????????????????^錨定開始位置
????????????????????$錨定結(jié)束位置
????????????????????^$空行
????????????????????^sdfas$單行模式下,整個(gè)字符串只能有這一個(gè)字符串多行模式下是一行只能有這一個(gè)字符串
????????(5)文本字符集的固有寫法
????????????????????\d(0-9)代表數(shù)字的集合
????????????????????\D代表非數(shù)字的集合
????????????????????\w(A-Za-z0-9_)所有的集合
????????????????????\W(^A-Za-z0-9_)非他們
????????????????????\s匹配空格 空白 制表符 換頁符
????????????????????.匹配任意單個(gè)字符
????????????(6) \轉(zhuǎn)義符
????????????????????1)將文本字符轉(zhuǎn)義為其他元字符
????????????????????2)將元字符轉(zhuǎn)義為字符本身
????????(7)貪婪模式
????????????????????在一種模式下,正則會(huì)盡可能的取長(zhǎng)度長(zhǎng)的結(jié)果未結(jié)果
????????????????????使用形式在數(shù)量限制元字符后面追加?
????????????(8) 向后查找 (?<= xxx ) 匹配xxx之后的內(nèi)容? 不包含xxx
????????????(9) 向前查找 (?= xxx ) 匹配xxx之前的內(nèi)容,不包含xxx