如果看到好的部落格,我將會把它訂閱到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');string物件也提供了4個使用正規表示式的方法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
方法含義
match(pattern)
在乙個字串中尋找乙個與正規表示式模式(pattern)的匹配/返回pattern中的字串或者null
replace(pattern,replacement)
用replacement替換pattern
search(pattern)
返回與正規表示式(pattern)的匹配
split(pattern)
返回字串按指定pattern拆分的陣列
var pattern = /box/ig; //開啟全域性regexp物件的屬性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 !,
屬性意義
$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 字母或數字或下劃線或漢字等 匹配字串的開始 匹配字串的結束 轉義符 除換行符以外的任意字...