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

資訊專欄INFORMATION COLUMN

正則表達式

Yangyang / 1407人閱讀

摘要:將用作括號表達式中的第一個字符,則會對字符集求反匹配結(jié)尾的位置與一個字邊界匹配,比如與中的匹配,但與中的不匹配非邊界字匹配標記字符組,標記括號表達式的開始和結(jié)尾。

字符

| 表示在兩個或多個項之間進行選擇,類似或
/ 開始和結(jié)尾
轉(zhuǎn)義

- 連字符,當且僅當在字符組 [] 的內(nèi)部表示一個范圍,比如[A-Z]表示范圍從AZ;如果需要在字符組里面表示普通字符 - ,放在字符組的開頭或結(jié)尾即可
. 匹配出換行符 之外的任何單個字符
d 等價[0-9],匹配09數(shù)字
D 等價[^0-9],與 d 相反
w 匹配以下字符:A-Z、a-z、0-9個下劃線,等價于 [A-Za-Z0-9]
W [^A-Za-z0-9]

限定符(量詞字符)

顯示限定符位于大括號{}中,并包括指示出現(xiàn)次數(shù)上下限的數(shù)值; *+? 這三個字符屬于單字符限定符:

{n} 剛好匹配 n 請輸入代碼次
{n,} 至少匹配 n
{n,m} 匹配至少 n 次,至多 m 次,即匹配 nm
* 等價 {0,}
+ 等價 {1,}
? 等價 {0,1}

注意

顯示限定符中,逗號和數(shù)字之間不能有空格,否則返回null

貪婪量詞 *+JavaScript默認是貪婪匹配,即匹配重復字符是盡可能多的匹配

惰性(最少重復匹配)量詞 :當進行貪婪匹配,只需要在要匹配的字符后面加上一個 ? 即可

var reg = /a+/;
var reg2 = /a+?/;
var str = "aaab";
str.match(reg); // ["aaa"]
str.match(reg2); // ["a"]

定位點(錨字符、邊界)

^ 匹配開始的位置。將 ^ 用作括號 [] 表達式中的第一個字符,則會對字符集求反
$ 匹配結(jié)尾的位置
 與一個字邊界匹配,比如 er 與 "never" 中的 "er" 匹配,但與 "verb" 中的 "er" 不匹配
B 非邊界字匹配

標記

[] 字符組,標記括號表達式的開始和結(jié)尾。[...] 匹配括號內(nèi)任意字符。很多字符在 [] 都會失去原來的意義:[^...] 匹配不在括號內(nèi)的任意字符;[?.]匹配普通的問號和點號

注意:

[] 中仍為轉(zhuǎn)義字符。如果要匹配反斜杠字符,使用兩個反斜杠
{} 標記限定符表達式的開始和結(jié)尾
{} 標記子表達式的開始和結(jié)尾,主要作用是分組,對內(nèi)容進行區(qū)分
(模式) 記住和這個模式匹配的匹配項(捕獲分組),不要濫用括號,如果不需要保存子表達式,可使用非捕獲型括號 (?:) 來進行性能優(yōu)化
(?:模式) 與模式匹配,但不保存匹配項(非捕獲分組)
(?=模式) 零寬正向先行斷言,要求匹配與模式匹配的搜索字符串。找到一個匹配項后,將在匹配文本之前開始搜索下一個匹配項;但不會保存匹配項
(?!模式) 零寬負向先行斷言,要求匹配與模式不匹配的搜索字符串。找到一個匹配項后,將在匹配文本之前開始搜索下一個匹配項;但不會保存匹配項
先行斷言 ?= 模式:x 只有在 y 前面才匹配,必須寫成 /x(?=y)/。解釋:找一個 x,那個 x 的后面要有 y
先行否定斷言 ?! 模式:x 只有不在 y 前面才匹配,必須寫成 /x(?!y)/。解釋:找一個 x,那個 x 的后面沒有 y

ES7提案

后行斷言( ?<= 模式):與”先行斷言”相反, x 只有在y后面才匹配,必須寫成 /(?<=y)x/。解釋:找一個 x,那個 x 的前面要有 y
后行否定斷言 ( ?<! 模式): 與”先行否定斷言“相反,x 只有不在y后面才匹配,必須寫成 /(?<!y)x/。 解釋:找一個x ,那個 x 的前面沒有 y
反向引用:主要作用是給分組加上標識符 ln n 表示引用字符,與第 ln 個子表達式第一次匹配的字符相匹配

var str = "
" + "
" + "" + "
" + "
"; // <(?!img) 表示找一個左尖括號<,而且左尖括號 < 的后面沒有img字符; // (?:.| | )*? 表示匹配左右尖括號<>里面的.或 或 ,而且匹配次數(shù)為*?;(?:)不保存匹配項,提高性能; // *后面加個? 表示非貪婪匹配。 var reg = /<(?!img)(?:.| | )*?>/gi; str.match(reg);

反向引用的例子,給 MikeMike 字符后加個單引號:

var reg = /(Mike)(1)(s)/;
var str = "MikeMikes";
console.log(str.replace(reg, "$1$2"$3"));
// 返回結(jié)果 MikeMike"s

非打印字符

s 任何空白字符。即 [f v]
S 任何非空白字符
Tab 字符 (u0009)
換行符 (u000A)
v 垂直制表符 (u000B)
f 換頁符 (u000C)
回車符 (u000D)

注意

一起使用,即 /[ ]/g 來匹配換行,因為 Unix 擴展的系統(tǒng)以 標志結(jié)尾,Windows 標志結(jié)尾

其他

cx 匹配 x 指示的控制字符,要求 x 的值必須在 A-Za-z 范圍內(nèi)
xn 匹配 n n 是一個十六進制轉(zhuǎn)義碼,兩位數(shù)長
un 匹配 n 其中 n 是以四位十六進制數(shù)表示的 Unicode 字符
m 先嘗試反向引用,不可則再嘗試標識為一個八進制轉(zhuǎn)義碼
mln 是八進制數(shù)字 (0-3)ml 是八進制數(shù)字 (0-7) 時,匹配八進制轉(zhuǎn)義碼 nml

修飾符

i 執(zhí)行不區(qū)分大小寫的匹配
g 執(zhí)行一個全局匹配,即找到所有的匹配,而不是在找到第一個之后就停止
m 多行匹配模式,^ 匹配一行的開頭和字符串的開頭,$ 匹配行的結(jié)束和字符串的結(jié)束
ES6新增 uy 修飾符

u 修飾符 Unicode 模式,用來正確處理大于 uFFFFUnicode 字符。正確處理四個字節(jié)的 UTF-16 編碼

// 加u修飾符以后,ES6就會識別uD83DuDC2A為一個字符,返回false。
/^uD83D/u.test("uD83DuDC2A");  // false
/^uD83D/.test("uD83DuDC2A"); // true

y 修飾符 與g 修飾符都是全局匹配,不同之處在于:lastIndex 屬性指定每次搜索的開始位置,g 修飾符從這個位置開始向后搜索,直到發(fā)現(xiàn)匹配為止;但是 y 修飾符要求必須在 lastIndex 指定的位置發(fā)現(xiàn)匹配,即 y 修飾符確保匹配必須從剩余的第一個位置開始

/b/y.exec("aba")  // null
/b/.exec("aba")  // ["b"]

優(yōu)先級順序

轉(zhuǎn)義符
(),(?:),(?=),[] 括號和中括號
*、+、?、{n}、{n,}、{n,m} 限定符
任何元字符 ^、$、 定位點和序列
| 替換

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/82367.html

相關文章

  • 正則達式

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

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

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

    Soarkey 評論0 收藏0
  • JavaScript正則達式總結(jié)

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

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

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

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

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

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

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

    yibinnn 評論0 收藏0

發(fā)表評論

0條評論

Yangyang

|高級講師

TA的文章

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