學習正規表示式

2021-07-22 11:43:48 字數 4170 閱讀 7538

如果看到好的部落格,我將會把它訂閱到feedly裡面,有空的時候就會翻出來看看他們寫過的新技術和研究,看國外的部落格需要用心和花費一點時間才能有收穫。看部落格的時候最關鍵還是需要動手操作,自己寫一遍**,勝過你讀幾遍文章。

正規表示式(regular expression)是乙個描述字元模式的物件。使用正規表示式可以進行強大的模式匹配和文字檢索與替換功能。

建立正規表示式和建立字串相似,建立正規表示式提供了兩種方法,一種採用new運算子,另一種採用字面量方式。

1.var box = new regexp('box'); 第乙個引數字串

var box = new regexp('box','ig'); 第二個引數可選模式修飾符

引數含義

i忽略大小寫

g全域性匹配

m多行匹配

2,var box = /box/; 使用字面量方式的正則

var box = /box/ig; 第二個斜槓後加模式修飾符

regexp物件包含兩個常用方法:test()和exec(),功能基本相似,用於測試字串匹配。

test()方法在字串中查詢是否存在指定的正規表示式,並返回布林值,如果存在則返回true,否則返回false。

exec()方法也用於在字串中查詢指定正規表示式,如果exec()執行成功,則返回包含該查詢字串的相關資訊資料,否則返回null。(返回結果陣列)

var pattern = new regexp('box','i');

var str = 'box';

alert(pattern.test(str)); //true

var pattern = /box/i;

var str = 'box';

alert(pattern.test(str)); //true

var pattern = /box/i;

var str = 'this is a box';

alert(pattern.test(str)); //true

var pattern = /box/i;

var str = 'box';

alert(pattern.exec(str)); box

返回的是陣列,有就返回陣列的值,沒有匹配到就返回null

var str ='ss';

alert(pattern.exec(str)); 沒有匹配到返回null

string物件也提供了4個使用正規表示式的方法

方法含義

match(pattern)

在乙個字串中尋找乙個與正規表示式模式(pattern)的匹配/返回pattern中的字串或者null

replace(pattern,replacement)

用replacement替換pattern

search(pattern)

返回與正規表示式(pattern)的匹配

split(pattern)

返回字串按指定pattern拆分的陣列

var pattern = /box/ig; //開啟全域性

var str = 'this is a box';

alert(str.match(pattern)); //匹配所有

var pattern = /box/ig;

var str = 'this is a box! that is a box too!';

alert(str.replace(pattern,'supperman'));

//this is a supperman! that is a supperman too';

var pattern= /!/ig;

alert(str.split(pattern)); //this is a supperman!, that is a supperman too !,

regexp物件的屬性

屬性意義

$1(到$9)

圓括號包圍的字串匹配

$_相當於input

$*相當於multiline

$&相當於lastmatch

$+相當於lastparen

$`相當於leftcontext

$'相當於rightcontext

constructor

指定建立物件原型的函式

global

全域性搜尋(使用g修飾符)

ignorecase

不區分大小寫搜尋(使用i修飾符)

input

如果沒有傳遞字串,這就是要搜尋的字串

lastindex

繼續匹配的起始位置

lastmatch

最後乙個匹配的字串

lastparen

最後的圓括號包圍的子字串匹配

leftcontext

最近乙個匹配字串左邊的子字串

multiline

是否跨多行搜尋字串

prototype

允許在所有物件中新增屬性

rightcontext

最近乙個匹配字串右邊的子字串

source

正規表示式模式本身

獲取控制

正規表示式元字元是包含特殊含義的字元,他們有一些功能,可以控制匹配模式的方式,反斜槓後的元字元將失去其特殊含義。

元字元/元符號匹配\

在字面意義和特殊意義之間進行切換。例如\w表示\w的特殊意義而不是字面值w,但是\$表示不使用$的特殊意義而是使用$字元本身

^字串的開頭

$字串的結尾

*零次或者多次

+一次或者多次

?零次或者一次

.除換行符外的任何字元

\b單詞邊界

\b非單詞邊界

\d0-9的任何數字(與[0-9]相同)

\d任何非數字

\f換頁符

\n換行符

\r回車符

\s任何乙個空白字元(與[\f\n\r\t\v]相同)

\s

任何乙個非空白字元

\t製表符

\v垂直製表符

\w任何字母、數字以及下劃線(與[a-za-z0-9_]相同)

\w除數字、字母及下劃線外的其他字元

\xnn

十六進製制數字nn定義的ascii字元

\onn

八進位制數字nn定義的ascii字元

\cx控制字元x

[abcde]與其中任何字元匹配的字串

[^abcde]字元補集,與其中任何字元都不匹配的字符集

[a-e]與其中的字元範圍匹配的字符集

[\b]

退格字元的字面量意義(不同於\b)

前面的字元正好出現n次

前面的字元至少出現n次

前面的字元至少出現m次,最多n次

()乙個組,可以在後面引用它

x|yx或y

o+ 表示1個或者多個o

x? 表示0個或者1個x

x* 表示0個或者多個x

(xyz)+匹配至少乙個(xyz)

x 匹配至少m個,最多n個x

正規表示式學習

概念 正規表示式,就是用某種模式去匹配一類字串的乙個公式。基礎 下表列出了所有的元字元和對它們的乙個簡短的描述。簡單例子 vi 命令作用 s g 把乙個或者多個空格替換為乙個空格 s 去掉行尾的所有空格 s 在每一行頭上加入乙個空格 s 0 9 0 9 去掉行首的所有數字字元 s b aeio g ...

正規表示式學習

1.元字元 1 匹配任何單個字元 2 匹配括號中的任何乙個字元 可以再括號中使用連字元 來指定子都的區間來簡化表示,如a 0123456789 c等價於a 0 9 c 3 將 之間括起來的表示式定義為 組 4 將兩個匹配條件進行邏輯 或 運算 z f ood則匹配 zood 或 food 5 匹配0...

正規表示式學習

只是點皮毛,先湊合用著了,順便鄙視一下sqlserver,居然不支援正則。b 元字元,代表著單詞的開頭或結尾,也就是單詞的分界處。d 數字 s 任意的空白符,包括空格,製表符 tab 換行符,中文全形空格等 w 字母或數字或下劃線或漢字等 匹配字串的開始 匹配字串的結束 轉義符 除換行符以外的任意字...