javascript正則表達(dá)式學(xué)習(xí)之位置匹配
一、前言
正則表達(dá)式是匹配模式,要么是匹配字符,要么匹配位置。
其實(shí)在開發(fā)中很少用到匹配位置,本篇文章主要包含:
二、什么是位置
位置:相鄰字符之間的位置。
三、如何匹配位置
在ES5中,共有6個(gè)錨:^, $, \b, \B, (?=p), (?!p)
可視化形式:
RegExp:/^$\b\B(?=a)(?!b)/g
3.1 ^和$
^(脫字符)匹配開頭,在多行匹配中匹配行開頭。
$(美元符)匹配結(jié)尾,在多行匹配中匹配行結(jié)尾。
比如:我們把字符串的開頭和結(jié)尾用#替換(位置可以替換成字符的):
var result = "hello".replace(/^|$/g, '#'); console.log(result); // "#hello#"
多行匹配模式(有修飾符m)時(shí),二者是行的概念,我們需要注意:
var result = "I\nlove\njavascript".replace(/^|$/gm, '#'); console.log(result); // #I#// #love#// #javascript#
3.2 \b和\B
\b是單詞邊界,具體就是\w和\W之間的位置,也包括\w與^之間的位置,和\w和$之間的位置。
比如考察文件名"[JS] Lesson_01.mp4"中的\b,如下:
var result = "[JS] Lesson_01.mp4".replace(/\b/g, '#'); console.log(result); // "[#JS#] #Lesson_01#.#mp4#"
首先,我們知道\w是字符組[0-9a-zA-Z]的簡寫,即使字母數(shù)字或者下劃線中任何一個(gè)字符。而\W是字符組[^0-9a-zA-Z]的簡寫,即\W是\w以外的任何一個(gè)字符。
我們?cè)賮砜?是怎么來的:
第 1 個(gè),兩邊字符是 "[" 與 "J",是 \W 與 \w 之間的位置。
第 2 個(gè),兩邊字符是 "S" 與 "]",也就是 \w 與 \W 之間的位置。
第 3 個(gè),兩邊字符是空格與 "L",也就是 \W 與 \w 之間的位置。
第 4 個(gè),兩邊字符是 "1" 與 ".",也就是 \w 與 \W 之間的位置。
第 5 個(gè),兩邊字符是 "." 與 "m",也就是 \W 與 \w之間的位置。
第 6 個(gè),位于結(jié)尾,前面的字符 "4" 是 \w,即 \w 與 $ 之間的位置。
知道了\b概念后,那\B就好理解了,\b是單詞邊界,\B是非單詞邊界
var result = "[JS] Lesson_01.mp4".replace(/\B/g, '#'); console.log(result); // "#[J#S]# L#e#s#s#o#n#_#0#1.m
上一篇:Oracle通過正則表達(dá)式分割字符串 REGEXP
欄 目:正則表達(dá)式
下一篇:Python中正則表達(dá)式的巧妙使用一文包你必掌握正則
本文標(biāo)題:javascript正則表達(dá)式學(xué)習(xí)之位置匹配
本文地址:http://mengdiqiu.com.cn/a1/zhengzebiaodashi/11171.html
您可能感興趣的文章
- 01-11正則表達(dá)式實(shí)現(xiàn)添加、刪除、替換三種功能
- 01-11python 用正則表達(dá)式篩選文本信息的實(shí)例
- 01-11正則表達(dá)式之匹配數(shù)字范圍
- 01-11python爬蟲正則表達(dá)式之處理換行符
- 01-11正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼
- 01-11正則表達(dá)式截取身份證號(hào)碼加密的方法
- 01-11js正則表達(dá)式 匹配兩個(gè)特定字符間的內(nèi)容示例
- 01-11MySQL使用正則表達(dá)式進(jìn)行查詢操作經(jīng)典實(shí)例總結(jié)
- 01-11python正則表達(dá)式之對(duì)號(hào)入座篇
- 01-11詳解正則表達(dá)式實(shí)現(xiàn)二代身份證號(hào)碼驗(yàn)證


閱讀排行
本欄相關(guān)
- 01-11正則表達(dá)式實(shí)現(xiàn)添加、刪除、替換三
- 01-11正則表達(dá)式之匹配數(shù)字范圍
- 01-11python 用正則表達(dá)式篩選文本信息的實(shí)
- 01-11正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼
- 01-11python爬蟲正則表達(dá)式之處理換行符
- 01-11js正則表達(dá)式 匹配兩個(gè)特定字符間的
- 01-11正則表達(dá)式截取身份證號(hào)碼加密的方
- 01-11python正則表達(dá)式之對(duì)號(hào)入座篇
- 01-11MySQL使用正則表達(dá)式進(jìn)行查詢操作經(jīng)典
- 01-11詳解正則表達(dá)式實(shí)現(xiàn)二代身份證號(hào)碼
隨機(jī)閱讀
- 04-02jquery與jsp,用jquery
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10delphi制作wav文件的方法
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器
如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。
聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)
Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有