Python学习 Day29 正则表达式(一)
正則表達(dá)式(一)
(一)正則的基本使用方法
正則表達(dá)式是用于匹配字符串的一種模式、方法
正則表達(dá)式:regular expression,簡稱RegExp
正則表達(dá)式定義最常用的方法是字面量,寫法//【定界符】
正則表達(dá)式在JS當(dāng)中屬于引用類型數(shù)據(jù)
(二)字符串方法結(jié)合正則
| split | 根據(jù)匹配字符串切割父串 |
| match | 使用正則表達(dá)式與字符串相比較,返回一個(gè)包含匹配結(jié)果的數(shù)組 |
| search | 使用正則表達(dá)式或指定字符串進(jìn)行搜索,返回第一個(gè)出現(xiàn)的匹配項(xiàng)的下角標(biāo) |
| replace | 使用正則表達(dá)式和字符串比較,然后用新的子串來替換被匹配的字符串 |
(1)split方法結(jié)合正則
split方法:主要的作用是通過某一個(gè)匹配字符切割字符串,并返回一個(gè)數(shù)組
var str = '我要去 上海 北京 廣州 深圳';var arr = str.split(' ');console.log(arr);split方法結(jié)合正則
//字符串的split方法結(jié)合正則一切使用var str = '我很喜歡中國 上海 北京 深圳 杭州';/*在正則表達(dá)式中:/s代表一個(gè)空格 +號:在正則當(dāng)中代表量詞,含義是連續(xù)出現(xiàn)次數(shù)大于等于1*/var arr = str.split(/\s+/);//空格連續(xù)出現(xiàn)的次數(shù)≥1console.log(arr);//用字符a切割字符串
//用字符a切割字符串var str = 'bbaadfaaadffaddfaeraafgaaaaeeee';var arr = str.split(/a+/);console.log(arr);(2)match方法結(jié)合正則
match方法:獲取到第一個(gè)符合條件的字符,并返回一個(gè)數(shù)組
var str = '我喜歡聽張杰的歌曲,因?yàn)閺埥艿母韬芎寐?#39;;var arr = str.match('張杰');console.log(arr);match方法結(jié)合正則
//match結(jié)合正則一起使用var str = '我喜歡聽張杰的歌曲,因?yàn)閺埥艿母韬芎寐?#39;;//在正則當(dāng)中g(shù)【global】,主要的作用是將全部符合條件的字符匹配出來//修飾符:只能放在右側(cè)邊界符的右側(cè)var arr = str.match(/張杰/g);console.log(arr);匹配字符b
//匹配字符bvar str = 'abbcccbbbbbbbbbbbbbbbbbbdddddddddd';var arr = str.match(/b+/g);//不加g則匹配第一個(gè)console.log(arr);//匹配字符“oo oo”
//匹配字符“oo oo”var str = 'aaaa o o bbb o o aaa';var arr = str.match(/o\s+o/g);//不加g則匹配第一個(gè)console.log(arr);(3)search方法結(jié)合正則
search方法:獲取到第一個(gè)符合條件的字符的索引值
var str = '水面清圓,一一風(fēng)荷舉';console.log(str.search('風(fēng)荷'));search方法結(jié)合正則一起使用,只返回【第一個(gè)】符合條件的字符的索引值
console.log(str.search(/風(fēng)荷/g));返回字符b的索引值
//返回字符b的索引值var str = 'abbdfgbbbbbbbssssbbbbbberg';console.log(str.search(/b+/g));(4)replace方法結(jié)合正則
replace方法:替換字符串中符合條件的【第一個(gè)】字符
var str = '我喜歡聽張杰的歌曲,因?yàn)閺埥艿母韬芎寐?#39;;var newstr = str.replace('歌曲','music');console.log(newstr);replace方法結(jié)合正則
//將“張杰”全部替換var str = '我喜歡聽張杰的歌曲,因?yàn)閺埥艿母韬芎寐?#39;;var newstr = str.replace(/張杰/g,'鄧紫棋');console.log(newstr);
將’www.hello.com’替換成’www.byebye.com’
過濾字符串中空格:‘a(chǎn)a b c d e f’------>‘a(chǎn)abcdef’
//過濾字符串中空格:'aa b c d e f'------>'aabcdef'var str = 'aa b c d e f';var newStr = str.replace(/\s+/g,'');console.log(newStr);(三)正則表達(dá)式方法
(1)exec方法
exec:正則表達(dá)式方法,作用是在目標(biāo)字符串中執(zhí)行【一次】正則匹配操作
//在'aaaabccccbacabc'中查找'abc'字符串var str = 'aaaabccccbacabc';//聲明一個(gè)變量存儲(chǔ)正則表達(dá)式var reg = /abc/;console.log(reg.exec(str));//只獲得一次目標(biāo)字符在’ooooo 0 0 oooooooooooooo’字符串中匹配’o 0 0 o’
//在'ooooo 0 0 oooooooooooooo'字符串中匹配'o 0 0 o'var str = 'ooooo 0 0 oooooooooooooo';var reg = /o\s+0\s+0\s+o/;console.log(reg.exec(str));(2)test方法
test:正則表達(dá)式方法,作用是檢測正則表達(dá)式中數(shù)據(jù),是否在目標(biāo)字符串中出現(xiàn),結(jié)果為布爾值
var str = '我喜歡聽歌 張杰的歌';var reg = /\s+/;console.log(reg.test(str));//true判斷’abbbbbcsdabccccaabbccdd’字符串中是否包含’abc’字符串
//判斷'abbbbbcsdabccccaabbccdd'字符串中是否包含'abc'字符串var str = 'abbbbbcsdabccccaabbccdd';var reg = /abc+/;console.log(reg.test(str));//true(四)正則表達(dá)式字符集
(1)簡單類
簡單類:就是任意多個(gè)字符進(jìn)行集合書寫,匹配某【一個(gè)】符合條件的字符 比如:[abc]
var str = '我喜歡abc,同時(shí)也喜歡bbc';var arr =str.match(/[ab]bc/g);//[ab]代表匹配a或bconsole.log(arr);//簡單類練習(xí)var str = '我喜歡張杰的歌曲,也喜歡張宇的歌曲';var arr = str.match(/張[杰宇]/g);console.log(arr);(2)范圍類
范圍類:有時(shí)匹配的東西很多,而且類型又相同,輸入麻煩時(shí),在中間加橫線 比如:[0-9][A-Z][a-z]
var str = '12306網(wǎng)站購票,110報(bào)警';var arr = str.match(/[0-9]+/g);//加號一定出現(xiàn)在匹配數(shù)據(jù)的后面console.log(arr);(3)組合類
- 組合類:允許用中括號匹配不同類型的單個(gè)字符,或者是一類及多類,或者一些單一的符號 比如[0-9a-z]
- 就是將對多個(gè)范圍類放在一起進(jìn)行匹配
(五)正則表達(dá)式修飾符
| g(global)修飾符 | 用于執(zhí)行全局匹配(查找所有匹配而非在找到第一個(gè)匹配后停止) |
| i(ignore)修飾符 | 用于執(zhí)行對大小寫不敏感的匹配 |
- 修飾符務(wù)必出現(xiàn)在第二個(gè)邊界符的右邊
- 在正則表達(dá)式中修飾符可以同時(shí)書寫多個(gè)
(六)正則表達(dá)式邊界符
正則表達(dá)式中一共有以下兩個(gè)邊界符:
| ^開頭邊界符 | 表示字符串必須以^后面的內(nèi)容作為開頭,出現(xiàn)在第一個(gè)定界符前面 |
| $結(jié)尾邊界符 | 表示$前面匹配的結(jié)果必須位于字符串最后,出現(xiàn)在第二個(gè)定界符后面 |
- 在正則表達(dá)式中邊界符不是必須的
- 邊界符可以兩個(gè)同時(shí)出現(xiàn)
總結(jié)
以上是生活随笔為你收集整理的Python学习 Day29 正则表达式(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue实例中生命周期created和mo
- 下一篇: python猜拳if判断语句_pytho