正則表示式 – 修飾符(標記)
正則表示式 - 修飾符(標記)
標記也稱為修飾符,正則表示式的標記用於指定額外的匹配策略。
標記不寫在正則表示式裡,標記位於表示式之外,格式如下:
/pattern/flags
下表列出了正則表示式常用的修飾符:
修飾符 | 含義 | 描述 |
---|---|---|
i | ignore - 不區分大小寫 | 將匹配設定為不區分大小寫,搜尋時不區分大小寫: A 和 a 沒有區別。 |
g | global - 全域性匹配 | 查詢所有的匹配項。 |
m | multi line - 多行匹配 | 使邊界字元 ^ 和 $ 匹配每一行的開頭和結尾,記住是多行,而不是整個字串的開頭和結尾。 |
s | 特殊字元圓點 . 中包含換行符 \n | 預設情況下的圓點 . 是 匹配除換行符 \n 之外的任何字元,加上 s 修飾符之後, . 中包含換行符 \n。 |
g 修飾符
g 修飾符可以查詢字串中所有的匹配項:
例項
在字串中查詢 "itread01":
var str="Google itread01 taobao itread01";
var n1=str.match(/itread01/); // 查詢第一次匹配項
var n2=str.match(/itread01/g); // 查詢所有匹配項
嘗試一下 ?
i 修飾符
i 修飾符為不區分大小寫匹配,例項如下:
例項
在字串中查詢 "itread01":
var str="Google itread01 taobao itread01";
var n1=str.match(/itread01/g); // 區分大小寫
var n2=str.match(/itread01/gi); // 不區分大小寫
嘗試一下 ?
m 修飾符
m 修飾符可以使 ^ 和 $ 匹配一段文字中每行的開始和結束位置。
g 只匹配第一行,新增 m 之後實現多行。
以下例項字串中使用 \n 來換行:
例項
在字串中查詢 "itread01":
var str="itread01google\ntaobao\nitread01weibo";
var n1=str.match(/^itread01/g); // 匹配一個
var n2=str.match(/^itread01/gm); // 多行匹配
嘗試一下 ?
s 修飾符
預設情況下的圓點 . 是 匹配除換行符 \n 之外的任何字元,加上 s 之後, . 中包含換行符 \n。
s 修飾符例項如下:
例項
在字串中查詢:
var str="google\nitread01\ntaobao";
var n1=str.match(/google./); // 沒有使用 s,無法匹配\n
var n2=str.match(/itread01./s); // 使用 s,匹配\n
嘗試一下 ?