深入淺出正規表示式中的邊界 b和 B

2022-09-24 20:09:08 字數 1540 閱讀 2668

目錄

正規表示式中:

我將正則中的位置分為 字元的佔位 和 字元的間隙。

字元的佔位是顯式的www.cppcns.com位置。

以 i'm 程式設計客棧iron man 為例。

肉眼可見的字母 符號 空格都是可以佔位的字元,也就是可以用下標獲取到字元的位置。

字元的間隙是隱式的位置。

即顯示位置之間的位置,比如i和'之間的位置,字串開頭和i之間的位置等。

邊界 指的是佔位的字元左右的間隙位置。

正則中所說的單詞指的是 \w 可以匹配的字元,即數字、大小寫字母以及下劃線 [0-9a-za-z_]

單詞邊界匹配的就是這樣的間隙位置:

左邊佔位的字元或右邊佔位的字元,至少有乙個不是 \w

// 只有首尾位置匹配

console.log('0az_'.replace(/\b/g, '.')) // .0az_.

// +不是\w,所以它的左右間隙都可以被匹配

console.log('a+a'.replace(/\b/g, '.')) // .a.+.a.

// 空格也不是\w,所以它的左右間隙都可以被匹配

console.log('a a'.replace(/\b/g, '.')) // .a. .a.

理解了 \b,\b就好理解了。

它匹配的也是 邊界 ,針對的是 與 \b 相反 的 非單詞(\w)。

也就是,左右佔位的字元,都必須是 \w。

或者說 所有不能被\b匹配的 邊界。

console.log('0az_'.replace(/\b/g, '.')) // 0.a.z._

console.log('a+a'.replace(/\b/g, '.')) // a+a.

console.log('a a'.replace(/\b/g, '.')) // a a

1.單詞邊界

var str = ' 2 ';//其中空格與2之間的位置叫做單詞邊界,匹配\b

2.非單詞邊界

var str = ",,,,,和呵呵,,,,,";

var reg = '\b呵\b';//reg匹配中間的呵,其兩側都是字元,中間的位置為非單詞邊界。

3.統計以「,」分割的元素中「3」的個數

var test = "137,1,33,4,3,6,21,3,35,93,2,98";

var count = test.match(test, "\b3\b").length; //結果:2

4.千分位分割數字,將輸出成7,654,32www.cppcns.com1這樣的格式

'7654321'.replace(/\b(?=(\d)+(?!\d))/g,',')

//7,654,321(匹配末尾是非數字,中間是連續3位數字整倍數的非單詞邊界)

'99893'.replace(/\b(?程式設計客棧;=(\d)+$)/g, ',')

// '99,893'

5.手機號344分割

'12345678901'.replace(/\b(?=(?:\d)+$)/g, '-')

// '123-4567-8901'

深入淺出正規表示式

正規表示式其實還是蠻簡單的,因為它沒有很強的邏輯在裡頭,我們只需要按照它的規則從頭開始依次去讀就好了 話雖這麼說,我相信很多人一開始接觸正則,當看到那一連串 亂七八糟 的字元時,都會一臉懵逼,這是啥玩意?然後就自然而然的認為這東西很複雜,接著打心底就牴觸使用正則,然後開始在網上搜看是否有現成的表示式...

深入淺出之正規表示式

1.什麼是正規表示式 基本說來,正規表示式是一種用來描述一定數量文字的模式。regex代表regular express。本文將用 來表示一段具體的正規表示式。一段文字就是最基本的模式,簡單的匹配相同的文字。2.不同的正規表示式引擎 正規表示式引擎是一種可以處理正規表示式的軟體。通常,引擎是更大的應...

正規表示式深入淺出 深入淺出資料分析

618買的 深入淺出資料分析 前段時間終於看完了,發現閒魚上的市場還不錯,就擺在上面 了,在被賣出之前,我寫了一篇總結,沒想到的是,文章儲存失誤了,現在書已經賣出去了,想重寫只能靠回憶了。深入淺出資料分析 這本書給我最深的感受是excel上 資料分析 和 規劃求解 兩個選項的使用,在這本書之前我知道...