工作中偶然遇到perl模式和物件模式切換卻沒有成功,由於接觸正則時間不長,看來看去也看不出什麼問題,百思不得其解下,到論壇求助。
原來是建立物件模式的正規表示式需要轉義,特此記錄。
html
js(三個reg任選其一,其他注釋掉即可看結果)
function fun()/; //這裡不需要轉義,可以直接寫
var reg = new regexp("\d","g"); //「\」是轉義字元,建立物件的語法會轉義,所以這就相當於匹配6個d
var reg = new regexp("\\d","g");//必須用這個方式,「\\」轉義為\,然後\d就替代所有數字,這個表示式就相當於匹配6個數字,同類需要轉義的還有\ . * + ? | ( ) ^ $ 等
//alert(reg.match(txt));
alert(txt.match(reg)); //注意match、serch、replace、split等這些都是string的方法,所以格式是 str.match(reg)/str.serch(reg);test和exec是regexp的方法,所以格式是reg.test(str)/reg.exec(str)
}
之前寫了篇部落格說到直接量語法和建立物件語法的區別和聯絡(正規表示式的直接量語法與建立 regexp 物件的語法比較)可以參考閱讀 Perl 正規表示式
正規表示式文中列表 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個後向引用 或乙個八進位制轉義符。匹配輸入字串的開始位置。如果設定了 regexp 物件的multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束位置。如果設定了 regexp 物件的multiline 屬性...
Perl正規表示式
元字元 元字元的含義是具有特殊含義的字元,即為元字元,元字元包括 點號能夠匹配所有的單字元,但是換行字元除外 n 簡易量詞 記載匹配正規表示式的時候有些需要重複的字元或者字串,我們在表示這種重複的形式的時候,即是量詞,我們知道的量詞有 表示至少重複一次,表示重複一次或者一次 以上,指的是重複一次或者...
perl 正規表示式
匹配 m 還可以簡寫為 略去 m 替換 s 轉化 tr 這三種形式一般都和 或 搭配使用 其中 表示相匹配,在整條語句中讀作 does,表示不匹配,在整條語句中讀作 doesn t 並在左側有待處理的標量變數。如果沒有該變數和 操作符,則預設為處理 變數中的內容。舉例如下 str i love pe...