談?wù)勎覍φ齽t表達(dá)式的認(rèn)識
文章定位(目標(biāo)讀者)
•聽說過正則表達(dá)式,見過其使用的場合,但未能熟練掌握起來]的人
•至少看過一遍正則表達(dá)式30分鐘入門教程但未能完全掌握的人。
正則表達(dá)式是什么
正則表達(dá)式(Regular Expression)是一個概念,一種語法、句法的約定。每一種具體的語句(C#,Java,JavaScript)有其對于正則表達(dá)式的具體實現(xiàn),并且會有差別。正則表達(dá)式30分鐘入門教程講述的是.net(C#)的正則表達(dá)式。
JavaScript的正則表達(dá)式
本人擅長的是JavaScript的正則表達(dá)式,這種正則表達(dá)式一個最大的特點是不支持零寬度正回顧后發(fā)斷言,原因很簡單,js是解釋執(zhí)行的。細(xì)節(jié)等深入后再去理解。
語法查詢
•正則表達(dá)式30分鐘入門教程
•JavaScript RegExp 對象參考手冊
•JavaScript String 對象參考手冊中的部分方法例如match,replace,search。
應(yīng)用場景
正則表達(dá)式有兩大應(yīng)用場景 1. 檢測用戶的輸入是否合法; 2. 從一堆信息中提取出自己想要的部分信息;這兩大應(yīng)用場景最大的區(qū)別是,檢測輸入的合法性是針對整個輸入字符的,即要加上 ^去匹配字符串的開始及$去匹配字符串的結(jié)束,否則意義不大,至少本人還沒遇到過不加上的情景。而提取信息的場景一般涉及到全局搜索g
簡單的例子
光是看代碼,怎么也掌握不了正則表達(dá)式的,下面我們來實踐一下:打開chrome(如果你還沒安裝chrome,那你不能算是本文的目標(biāo)讀者),當(dāng)然安裝了firebug的firefox或者高版本的IE也OK,,按F12,調(diào)出開發(fā)人員工具。切換到如下的選項卡,輸入代碼
/Hello World/.test("Hello World")
OK,以上代碼就是用一個正則表達(dá)式去檢測一個字符串是否包含"Hello World"這個特定字符。在JS中,最常用的就是Regexp的直接量,即在兩條斜杠//中加上正則表達(dá)式的語法。也就是說,在正則表達(dá)式30分鐘入門教程提及到的語法例如[aeiou]、\(?0\d{2}[) -]?\d{8}等等,置于兩條斜杠//中就成為一個JS的正則表達(dá)式對象(/[aeiou]/、/\(?0\d{2}[) -]?\d{8}/),就擁有JavaScript RegExp 對象參考手冊中提到的方法,也能應(yīng)用到JavaScript String 對象參考手冊的部分方法中,才能應(yīng)用到實際編程中,具體參考上面的Hello World 示例代碼。最后,根據(jù)我自己的經(jīng)驗,要自己去做一個實踐,例如
1.把本篇文章中body部分的內(nèi)容提取出來,或者把所有的超連接中的文字提取出來
2.設(shè)計一個表單,驗證用戶的輸入,具體的驗證可以參考常用正則表達(dá)式
最后的話
以上是我本人學(xué)習(xí)正則表達(dá)式的一些體會,當(dāng)時的體會就是:看到了很多語法細(xì)節(jié),但不知道如何付諸實踐,在自己進(jìn)行了一個小實踐后,終于明白。在此進(jìn)行整理。
相關(guān)文章
正則表達(dá)式學(xué)習(xí)參考 正則入門學(xué)習(xí)資料
正則表達(dá)式(Regular Expression)是一種匹配模式,描述的是一串文本的特征2012-10-10常用正則表達(dá)式知識點解讀及判讀有效數(shù)字、手機(jī)號郵箱正則表達(dá)式
正則表達(dá)式式應(yīng)用非常廣泛,本文給大家收集整理些正則表達(dá)式知識點解讀及判斷有效數(shù)字、手機(jī)號郵箱正則表達(dá)式,對常用正則表達(dá)式相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧2015-11-11正則表達(dá)式限制 賬號 密碼 郵箱 身份證 手機(jī)號的相關(guān)代碼
這篇文章主要介紹了正則表達(dá)式限制 賬號 密碼 郵箱 身份證 手機(jī)號的相關(guān)代碼的相關(guān)資料,需要的朋友可以參考下2016-01-01使用正則表達(dá)式生成隨機(jī)數(shù)據(jù)的方法
這篇文章主要介紹了使用正則表達(dá)式生成隨機(jī)數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02