国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

正則表達式

Noodles / 3526人閱讀

摘要:一定義正則表達式,使用單個字符串來描述匹配一系列符合某個句法規則的字符串。沒有找到則返回分割標識符參數,可以是多個字符或一個正則表達式限制返回元素的個數五參考資料高級程序設計正則表達式課程,

一. 定義

正則表達式(Regular Expression),使用單個字符串來描述、匹配一系列符合某個句法規則的字符串。

二. 基本語法 元字符

正則表達式中有特殊含義的非字母字符

字符類

[]可以構建一個類,比如[abc],匹配含有abc
字符類取反
[^]表示匹配一個未列出的字符, 而不是匹配列出的字符

var reg=/[^ab]/g;
var string="acdadbb";
string.replace(reg,"A"); //結果為"aAAaAbb"
范圍類

[],匹配一個范圍,在其類內部是可以連寫的,例如

[a-zA-Z] //匹配26個字母的大小寫
預定義類

.匹配除回車符和換行符之外的所有字符

d匹配數字字符

D匹配非數字字符

s匹配空白符

S匹配非空白符

w匹配單詞字符(字母、數字下劃線)

W匹配非單詞字符
注意大小寫的區分

邊界

^開始

$結束

單詞邊界

B非單詞邊界

量詞

匹配之前緊鄰的元素,這個元素可以不出現,且匹配成功(最多出現一次)

+ 表示之前緊鄰的元素出現一次或者多次,無法進行一次匹配時,會報告匹配失敗(最少出現一次)

*之前緊鄰的元素出現任意多次或者不出現
字符組里面的一些字符不是元字符。(任意次)

{n} 出現n次

{n,m}出現n到m次

{n,}至少出現n次

分組

1.()

//匹配一個字母加一個數字的前兩個組合
var reg1=/[a-z]d{2}/g; 
var reg2=/([a-z]d){2}/g; //增加()
var string="a1c2d3adbb";
string.replace(reg1,"A"); //結果為"a1c2d3adbb",沒有改變,因為匹配的是字母加上出現2次的數字
string.replace(reg2,"A"); //結果為"Ad3adbb""

2.或|

var reg=/h(o|i)t/g; 
var string="hothithat";
string.replace(reg,"A"); //結果為AAhat

3.反向引用
例如日期格式的轉換,由2016-08-16轉換為08/16/2016

var reg=/(d{4})-(d{2})-(d{2})/g; 
var string="2016-08-16";
string.replace(reg,"$2/$3/$1"); //結果為08/16/2016

其中$1表示第一組括號匹配的文本,其他類似

4.忽略分組
在分組內加上?:

var reg=/(d{4})-(?:d{2})-(d{2})/g; 
var string="2016-08-16";
string.replace(reg,"$2/$3/$1"); //結果為16/$3/2016,月份已經被忽略,無法通過$加數字進行訪問
前瞻

文本尾部方向,為
正向前瞻: exp(?=assert)
負向前瞻: exp(?!assert)
前瞻:匹配到規則的時候,向前檢查是否符合斷言,javaScript不支持后顧。

var reg=/w(?=d)/g; //找到字母后,判斷后面是不是有數字,有的話才符合,替換掉這個字母,但是數字不會替換
var string="h2othi2";
string.replace(reg,"A"); //結果為A2othA2
三. 匹配模式 貪婪模式

極可能多地匹配

var reg=/d{3,6}/g;
var string="123456789";
string.replace(reg,"A"); //結果為"A789",盡可能多的匹配
非貪婪模式

讓正則表達式盡可能少的匹配,一旦匹配成功就不再繼續嘗試。方式是在量詞后加上

var reg=/d{3,6}?/g;
var string="123456789";
string.replace(reg,"A"); //結果為"AAA",盡可能多的匹配
四. RegExp對象 創建方法

有兩種方法可以創建RegExp對象
a.顯式構造函數:

var reg=new RegExp("pattern"[,"flag"]);

b.隱式構造函數:

var reg=/pattern/[flags];

其中,flags可以是一些標志字符的組合

g 為全局標志,將對所有匹配的部分起作用,如果不設置,僅搜索和替換最早匹配的內容
i為 忽略大小寫的標志,如果設置,忽略大小寫
m 為多行標志,如果設置,“^”還可以與被搜索字符串的 n 或 r 之后的位置進行匹配

例如:

/ab+c/i;
new RegExp("ab+c","i");
RegExp對象的屬性

global:布爾值

ignoreCase:布爾值

lastIndex:整數,表示開始搜索下一個匹配項的字符位置

multiLine:布爾值

source:正則表達式的字符串表示

RegExp對象的方法 exec
rgExp.exec(str)

返回值:如果沒有找到匹配返回null,如果找到則返回一個數組
返回的數組有三個屬性,分別是input、index和lastIndex

    input包含了查找的字符串,
    index屬性包含了整個被查找字符串中被匹配的子字符串的位置,
    lastIndex屬性中包含了最后一次匹配中最后一個字符的下一個位置
test
rgexp.test(str)

返回值:如果存在一個模式,返回true

match
stringObj.match(rgExp)

返回值:如果沒有找到匹配返回null,如果找到則返回一個數組
返回的數組有三個屬性,分別是input、index和lastIndex,input包含了查找的字符串,index屬性包含了整個被查找字符串中被匹配的子字符串的位置,lastIndex屬性中包含了最后一次匹配中最后一個字符的下一個位置

search
stringObj.search(rgExp);

返回值:如果存在,則返回 一個整數值,指明這個匹配距離字符串開始的偏移位置。
沒有找到則返回-1

replace
replace(rgExp,replaceText);
split
split([separator[,limit]])

separator 分割標識符參數,可以是多個字符或一個正則表達式
limit 限制返回元素的個數

五. 參考資料

《JavaScript高級程序設計》

《JavaScript正則表達式》課程, Samaritan89

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/80069.html

相關文章

  • 正則達式

    摘要:本文內容共正則表達式火拼系列正則表達式回溯法原理學習正則表達式,是需要懂點兒匹配原理的。正則表達式迷你書問世了讓幫你生成和解析參數字符串最全正則表達式總結驗證號手機號中文郵編身份證地址等是正則表達式的縮寫,作用是對字符串執行模式匹配。 JS 的正則表達式 正則表達式 一種幾乎可以在所有的程序設計語言里和所有的計算機平臺上使用的文字處理工具。它可以用來查找特定的信息(搜索),也可以用來查...

    bang590 評論0 收藏0
  • JS中的正則達式

    摘要:構造函數可以有兩個字符串參數,第一個參數包含正則表達式的主體部分。只讀的布爾值,說明這個正則表達式是否帶有修飾符。中正則的擴展構造函數在中,只能接受字符串作為參數,允許其直接接受正則表達式作為參數。 上文傳送門:初探正則表達式 正則表達式是一個描述字符模式的對象,JavaScript 的 RegExp 類表示正則表達式,String 和 RegExp 都定義了方法,后者使用正則表達式進...

    Soarkey 評論0 收藏0
  • JavaScript正則達式總結

    摘要:正則表達式一直是里比較難以掌握的點。在中創建正則的兩種方式使用字面量這就是正則表達式的字面量語法,表示正則表達式的模式,為正則表達式的標志。字面量形式的正則表達式一般使用較多,也推薦大家盡可能使用這種形式,簡潔易讀,符合正常的使用習慣。 正則表達式一直是js里比較難以掌握的點。 看不懂,學不會,記不住。 每次需要用到正則的時候,都需要再去查找資料。 今天花時間把正則的知識點總結下,希望...

    big_cat 評論0 收藏0
  • 正則與JS中的正則

    摘要:注意本文將正則與中的正則分開討論。正則零寬斷言更多參考各種語言對于正則不同支持參考單行模式與多行模式通過設置正則表達式后的修飾符可開啟對應的匹配模式單行模式和多行模式。 最近這段時間幫同學處理一些文檔, 涉及到一些結構化文檔的工作大部分都得使用正則表達式, 之前對于正則的認識大多來源于語言書上那幾頁的介紹, 自己也沒有用過幾次。這里將我之前感到模糊的概念作個整理。因為對JS了解多點,所...

    firim 評論0 收藏0
  • JavaScript正則達式的匹配模式

    摘要:選擇分組和引用正則表達式的語法還包括指定選擇項子表達式分組和引用前一子表達式的特殊字符。帶圓括號的表達式的另一個用途是允許在同一正則表達式的后部引用前面的子表達式。 正則表達式(regular expression)是一個描述字符模式的對象。JavaScript的 RegExp類 表示正則表達式,String和RegExp都定義了方法,后者使用正則表達式進 行強大的模式匹配和文本檢索與...

    wqj97 評論0 收藏0
  • 正則達式

    摘要:最全正則表達式總結驗證號手機號中文郵編身份證地址等是正則表達式的縮寫,作用是對字符串執行模式匹配。學習目標了解正則表達式語法在中使用正則表達式在中使 JS高級技巧 本篇是看的《JS高級程序設計》第23章《高級技巧》做的讀書分享。本篇按照書里的思路根據自己的理解和經驗,進行擴展延伸,同時指出書里的一些問題。將會討論安全的類型檢測、惰性載入函數、凍結對象、定時器等話題。1. 安全的類型檢測...

    yibinnn 評論0 收藏0

發表評論

0條評論

Noodles

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<