第七章 正規表示式
一、正規表示式的支援
var reg=new regexp("cat")//匹配字串中第一次出現的cat
var reg=new regexp("cat","g")//「g」是global的縮寫,匹配字串中所有cat
var reg=new regexp("cat","gi")//i表示不區分大小寫
var reg=/cat/gi;//perl風格寫法
test() 返回true、false
exec() 返回陣列
match() 返回乙個包含在字串中所有匹配的陣列
search() 返回第一次出現的索引
為什麼有些符號必須轉義,因為這些符號是元字元,元字元是正規表示式中一部分
元字元有:([ ->一定出現n次
->至少出現n次不超過m次
->至少出現n次
eg: /b?cds?d/=/bcdsd/
貪婪量詞:先看整個字串是不是乙個匹配,不是的話,減去最後乙個字元,再匹配,類似迴圈,直到結束。符號表示同簡單量詞
支配量詞:只嘗試匹配整個字串。在簡單量詞後面加"+"號
候選符號:|
邊界符:
^ 行開頭
$ 行結尾
\b 單詞邊界
\b 非單詞邊界
三、regexp物件
1.例項屬性
global(g)------boolean值,表示全域性選項是否設定
ignorecase(i)-----boolean值,表示是否忽略大小寫
lastindex---------整數,代表下次匹配會從那個字元開始,也就是當前匹配的最後索引值(盡在使用exec() or test()函式才會填入,否則預設為0,即從頭開始匹配)
multiline(m)-----boolean值,表示是否是國航匹配模式
source---源字串形式
2.靜態屬性
長名-----------------短名-----描述
input---------------$_ 最後用於匹配的字串(傳遞給exec() or test()的字串)
lastmatch-----------$& 最後匹配的字元
pastparen-----------$+ 最後匹配的分組
leftcontext---------$` 在上次匹配的前面的子串
multiline-----------$* 是否啟用多行模式
rightcontext--------$' 在上次匹配的後面的子串
eg:var stomatch="this has been a short,short number";
var reshort=/(s)hort/g;
reshort.test(stomatch);
alert(regexp.input); 或者 alert(regexp.$_); //返回"this has been a short,short number"
alert(regexp.leftcontext); 或者 alert(regexp["$`"]); //返回"this has been a "
alert(regexp.rightcontext); 或者 alert(regexp["$'"]); //返回",short number"
alert(regexp.lastmatch); 或者 alert(regexp["$&"]); //返回"short"
alert(regexp.pastparen); 或者 alert(regexp["$+"]); //返回"s"
正規表示式 正規表示式函式 筆記
筆記直接使用pycharm製作,需要原始檔請私聊。正規表示式函式 1.match 2.search 3.全域性匹配函式 全域性匹配 re.compile 正規表示式 findall 資料 import re string poythonydasadcasa pat2 p.y 懶惰模式執行 較精準 r...
正規表示式筆記
不同的語系編碼的順序不一樣 lang c 0 1 2 3 a b c d z a b c d z lang zh cn 0 1 2 3 4 a a b b c c z z 使用正規表示式時,需要留意環境的語系是什麼,否則會有不同的結果 alnum 英文大小寫字元及數字 0 9 a z a z alp...
正規表示式筆記
d 0 9中的任意乙個數字 w a z,a z,0 9,中的任意乙個,即字母數字下劃線 s 空格,製表符,換頁符等空白字元的其中任意乙個 小數點可以匹配換行符 n 以外的任意乙個字元 匹配某範圍內的任意乙個字元 ab9 匹配 a b 9 中的任意乙個 abc 匹配abc之外的任意乙個字元 a g 匹...