中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣快速學習正則表達式

發布時間:2021-02-19 15:03:23 來源:億速云 閱讀:166 作者:小新 欄目:互聯網科技

這篇文章給大家分享的是有關怎樣快速學習正則表達式的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

正則表達式概念

正則表達式,又稱正規表示法、常規表示法(英語: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方法中,正則表達式的全局旗標不起作用

感謝各位的閱讀!關于“怎樣快速學習正則表達式”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东乡| 宜丰县| 鄢陵县| 班玛县| 龙江县| 新郑市| 来安县| 东丰县| 武宁县| 双城市| 连城县| 礼泉县| 金门县| 竹北市| 伊川县| 内丘县| 大埔县| 西乌| 怀来县| 沙洋县| 屯门区| 霍州市| 大冶市| 景洪市| 彩票| 崇礼县| 长治市| 永嘉县| 虎林市| 双城市| 松原市| 昭苏县| 开远市| 江西省| 宣化县| 习水县| 安吉县| 织金县| 萍乡市| 安塞县| 灵宝市|