正則表達式

1. 前瞻:?=bash

exp1(?=exp2):查找exp2前面的exp1
例如:博客園 顧客 博客 客園
表達式:客(?=園)
結果:客 客

例如:23a
表達式:\d+(?=.*[a-z])
結果:23

2.後顧:?<=app

(?<=exp2)exp1:查找exp2後面的exp1
例如:博客園 顧客 博客 客園
表達式:(?<=博)客
結果:客 客

例如:中國a23
表達式:(?<=.*[a-z])\d+
結果:23

3.負前瞻: ?!ide

exp1(?!exp2):查找前面不是exp2的exp1
例如:博客園 顧客 博客園 客園 
表達式:客(?!園)
結果:客

4. 負後顧:?<!spa

(?<!exp2)exp1 查找後面不是exp2的exp1
例如:博客園 顧客 博客 博客園  
表達式:(?<!博)客
結果:客

5. \s+字符串

一個或多個空格

6.^
博客

以xxx 開始

7.[^ ]it

不包含xxx;匹配未包含的任意字符
例如:plain
表達式:[^abc]
結果: plin

8. .*
class

.   匹配除緩緩\n外的任意單個字符
*   匹配任意數量的任何字符
.*  只要前方有符合.以後表達式,就會一直匹配下去
.*?只要匹配到.以後的表達式一次,就結束

9.捕獲和非捕獲
方法

捕獲:匹配當前exp表達式,獲取併產生Matches 組合。經常使用方法:/(exp)/
非捕獲:匹配當前exp表達式,不產生新組合,不輸出,不破壞字符串完整性。經常使用方法:/(?:exp)/

例如:begin 123.456 end
表達式:\d+(?:\.\d+)
輸出: 123.456

例如:/(a)(1)(A)\1\2/g ===> a1Aa1

  /(a)(?:1)(A)\1\2/g ====>a1AaA
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息