Java基礎(chǔ)進(jìn)階 正則的詳解

? ??????????????????????????????????????????正則的基本用法

正則表達(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容