正則表達式
在線工具
url:[http://regexper.com](http://regexper.com)
簡單表示
循環:
?:表示0或1次出現
+:表示1~n次出現
*:表示0~n次出現
{n}:循環出現n次
{n,m}:循環出現n~m次
{n,}:循環至少n次
匹配:
.:匹配任意字符
分組:
():括號內的內容屬於分組的內容
特殊轉義:
\b:單詞邊界
\B:非單詞邊界
\d:數字
\D:非數字字符
\s:空白符
\S:非空白符
\w:單詞字符
\W:非單詞字符
* 一般變大寫就是取反的意思
特殊字符:
[/-]:表示/或者-字符
^:表示開頭,在表達式的中間,如[^abc]:表示不是abc的其它字符,表取反
$:表示結尾,或者是替換後的分組後的分組序號
-:範圍類,a-z表示a到z的字符
?:{3,6}?加了?後,表示非貪婪模式,匹配到3個就停止一次匹配,默認是貪婪模式,會儘可能多的匹配字符串
|:分支(on|ca)
?: :(?:)表示忽略分組
前瞻:
正向前瞻:exp(?=assert)
負向前瞻:exp(?!assert)
* 匹配的只是見面的exp,後面是驗證字符串的,不參與匹配替換
在JavaScript中的使用
字面量
聲明:
var reg=/ \bis\b /(g);//寫在兩個/之間的是正則表達式,加了g後,表示全文匹配,否則是匹配一個而已
使用:
String.replace(reg,'IS');
構造函數:
聲明:
var reg=new RegExp('\\bis\\b','gim');\適用於轉義
參數:
g:global 全文搜索,不添加,搜索到第一個匹配爲止
i:ignoreCase 忽略大小寫,默認大小寫敏感
m:multiline 多行搜索
方法:
reg.test('String');測試String是否與reg的正則匹配
測試後後改變lastIndex的值
reg.exe('String');使用正則表達式模式對字符串執行搜索,並加.將更新全局RegExp對象的屬性以反映匹配結果。
沒有就返回null,否則返回一個結果數組:
index:聲明匹配文本的第一個字符的位置
input:存放被檢索的字符串string,後續的字符串表示分組的匹配的結果信息
加了g:lastIndex就有作用,每次匹配後會更新lastIndex的信息,下次匹配就從lastIndex開始匹配,每次只是給出一次的結果,如果是要全文的信息,要利用循環得出結果。
String.search(reg|string);string會轉換成正則表達式,成功返回index的下標,失敗index是-1;g標誌對表達式無效
String.match(reg):不加g和exec基本相同
加了g後,返回所有的匹配的字符串
String.splite(reg);返回分割後的數組
String.repalce(reg,'content'|function);
function(match,groupInfo,index,origin);
匹配信息,分組信息(根據分組的數量,會有多個參數),匹配下標,原文