關於正則表達式

正則表達式

英文爲Regular expression,簡稱:regexregexp
含義:按照某種規則去匹配符合條件的字符串正則表達式

正則表達式由兩種基本字符類型構成:express

  • 原義文本字符
  • 元字符

元字符是在正則表達式中有特殊含義的非字母字符:* + ? ^ $ . | \ () {} []code

經常使用字符集
\t:水平製表符
\v:垂直製表符
\n:換行符
\r:回車符
\0:空字符
\f:換頁符
|:或regexp

字符類
由元字符[]建立。字符類取反:由^建立,反向類,[^123]表示不是字符123的內容對象

範圍類
[a-z]:來鏈接兩個字符表示從az的任意字符字符串

預約義類
.[^\r\n],除了回車符和換行符以外的全部字符
\d[0-9],數字字符
\D[^0-9],非數字字符
\s[\t\n\x0B\f\r],空白符
\S[^\t\n\x0B\f\r],非空白符
\w[a-zA-Z0-9_],單詞字符(字母、數字、下劃線)
\W[^a-zA-Z0-9_],非單詞字符 io

邊界
^:開始標記,以xx開始
$:結束標記,以xx結束
\b:單詞邊界
\B:非單詞邊界 ast

量詞
?:出現0次或1
+:出現1次或多個
*:出現0次或屢次(任意次)
{n}:出現n
{n,}:出現n次或n次以上,當n0時等價於*n1時等價於+
{n,m}:出現n次到m次,當n0m1時等價於? 搜索

貪婪模式和非貪婪模式
正則表達式默認是貪婪模式,當使用量詞進行匹配時,會盡量匹配多的。英文

非貪婪模式:讓正則表達式儘量少的匹配,也就是說一旦成功匹配再也不繼續嘗試。
在量詞後面加上?便可

'123456789'.match(/\d{3,5}?/g)

result:{'123', '456', '789'}

分組()
忽略分組:(?: Byron).(ok)

前瞻後顧
正向前瞻:exp(?=assert)
負向前瞻:exp(?!assert)
正向後顧:exp(?<=assert)
負向後顧:exp(?<!assert)

對象屬性

  • global:是否全文搜索,默認false
  • ignore case:是否大小寫敏感,默認false
  • multiline:多行搜索,默認值是false
  • lastindex:是當前表達式匹配內容的最後一個字符的下一個位置
  • source:正則表達式的文本字符串
相關文章
相關標籤/搜索