如何快速學習正規表示式
正規表示式概念
正規表示式,又稱正規表示法、常規表示法(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),電腦科學的一個概念。正規表示式使用單個字串來描述、匹配一系列符合某個句法規則的字串。在很多文字編輯器裡,正規表示式通常被用來檢索、替換那些符合某個模式的文字。
在日常工作中,我們經常寫正規表示式,比如在表單中經常用來驗證使用者輸入的格式是否正確,我們就會用到正規表示式;可以把正規表示式看做是可以描述問題的語言,它就是專門為模式匹配而設計的
正規表示式的語法
可以簡單粗暴得把正規表示式理解為查詢東西,舉個例子:要在"Hello World"中找到"world"這個單詞,先用直白的語言來描述就是查詢"從w開頭到d結束的字母組合",使用正則來描述就是\bw\w*d\b,這個就是模式字串,它由元字元和字面量字元組成
•常見的元字元如下:
•正規表示式中的旗標
•正規表示式中的轉義字元
JS中的正規表示式
•兩種生成方式,
舉例:匹配0-9有沒有出現
1、通過RegExp var reg=new RegExp('^[0-9]','g');
2、通過表示式字面量 var reg=/^[0-9]/g;
•兩種常用的方法
test()、exec()
1、test方法:如果輸入字串與模式相匹配,test就返回真,沒有則返回假
2、exec方法:如果輸入字串與模式匹配,則返回一個陣列,沒有匹配就返回null
/*test()方法,匹配是否有出現0-9*/ var reg1=/^[0-9]/; reg1.test('There is no number'); //返回結果為false /*exec()方法,匹配句子裡面的單詞,兩個單詞一組*/ /*沒有設定全域性旗標*/ var reg2=/(\w+)\s(\w+)/; reg2.test('There is no number'); //返回結果['There is','There','is'] //第0個元素是匹配的字串,後面兩個元素分別是分組引用的子字串 /*設定全域性旗標*/ var reg3=/(\w+)\s(\w+)/g; reg3.test('There is no number'); //設定了全域性旗標的話,exec()會迴圈尋找 //第一次查詢結果['There is','There','is'],第二次結果['no number','no','number'],第三次結果null exec()方法如果設定了全域性旗標,在迴圈中使用必須要手動設定其reg.lastIndex = 0;,否則它會間隔匹配
--------------------------------------------------------------------------------
字串物件與正規表示式
•在string物件中有不少以正規表示式物件作為引數的方法
屬性 | 說明 |
---|---|
match(regexp) | 返回正規表示式regexp的匹配結果 |
replace(searchValue,replaceValue) | 將searchValue(正規表示式或是字串值)
替換為replaceValue,並返回響應的字串 |
search(regexp) | 返回正規表示式regexp匹配位置的下標,沒有匹配就返回-1 |
split(separator,limit) | 通過引數separator(字串或是正規表示式)
對字串進行分割,並返回一個字串陣列 |
•match方法會返回元素與模式相匹配的字串的陣列,設定全域性旗標時,會返回所有與模式相匹配的字串陣列,不設定時和exec方法相同
應用例子:
var text='abc def ghi jkl'; //設定全域性旗標 text.match(/\w+/g); //["abc","def","ghi","jkl"] //不設定全域性旗標 text.match(/(\w+)\s(\w+)/); //["abc def","abc","def"] •replace方法返回被替換的字串,如果設定了全域性旗標,則替換全部匹配了的字串,否則只替換第一個匹配的字串;replace中如果第一個引數用了分組,第二個引數能夠通過符號來標識分組的前向引用
應用例子:
var text="abc def ghi jkl"; //將空格替換為字元 text.replace(/\s/,','); //"abc,def ghi jkl" text.replace(/\s/g,','); //"abc,def,ghi,jkl" //對空格之前的字元分組,用逗號替換並前向移動一位 text.replace(/(.)\s/g,",$1"); //"ab,cde,fgh,igkl" •在search與split方法中,正規表示式的全域性旗標不起作用
以上內容是小編給大家介紹的快速學習正規表示式 的方法,希望對大家有所幫助!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015104/viewspace-2878869/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Go 正規表示式學習Go
- 正規表示式學習和練習
- 正規表示式學習筆記筆記
- 正規表示式入門學習
- 正規表示式例項蒐集,通過例項來學習正規表示式。
- 通過js正規表示式例項學習正規表示式基本語法JS
- Python學習筆記 - 正規表示式Python筆記
- java 正規表示式語法學習Java
- 正規表示式學習(2)---字元特性字元
- 學習正規表示式(js、C#)JSC#
- 正規表示式複習
- 正規表示式(初學)
- JavaScript正規表示式學習筆記(一)JavaScript筆記
- 正規表示式re.compile的學習Compile
- js正規表示式基本語法學習JS
- 從 Vue parseHTML 來學習正規表示式VueHTML
- 快速掌握grep命令及正規表示式
- 正規表示式學習筆記(1)-認識正則筆記
- Python學習筆記|Python之正規表示式Python筆記
- learn-regex:正規表示式學習資源
- js加固之正規表示式學習筆記JS筆記
- python 中的正規表示式學習筆記Python筆記
- 正規表示式
- 正規表示式.
- 工作學習筆記(二) 正規表示式(轉載)筆記
- 僅1個例子輕鬆學習正規表示式
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- php –正規表示式PHP
- 【Linux】正規表示式Linux
- 【JavaScript】正規表示式JavaScript
- URL正規表示式
- 正規表示式 split()
- 初探正規表示式
- 正規表示式 test()
- 正規表示式(?!)作用
- 正規表示式 {n,}
- SQL正規表示式SQL
- 正規表示式(java)Java