麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Regex > 正文

快速學習正則表達式的方法

2024-09-07 17:40:08
字體:
來源:轉載
供稿:網友

正則表達式是一個強有力的工具,它可以幫助我們完成很多事,我們也可以在基于UNIX系統的工具中找到正則表達式的身影,那要如何才能快速學習正則表達式呢?今天我們就一起去看看快速學習正則表達式的方法。

正則表達式概念

正則表達式,又稱正規表示法、常規表示法(英語: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"http://對空格之前的字符分組,用逗號替換并前向移動一位text.replace(/(.)/s/g,",$1");//"ab,cde,fgh,igkl" ?在search與split方法中,正則表達式的全局旗標不起作用

上文中介紹了快速學習正則表達式的方法,在日常中正則表達式可以幫助我們更好的描述復雜的文本格式,因此學習好正則表達式是一件很重要的事情。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 激情久久一区二区 | 欧美熟videos肥婆 | 9191色| 色就操 | 国产一区二区三区视频在线观看 | 看免费黄色一级片 | www.com超碰| 亚洲午夜精选 | 国产精品99一区二区 | 免费观看一区 | 色呦呦一区二区三区 | 成人综合免费视频 | chinese军人gay呻吟 | 92看片淫黄大片一级 | 一级毛片播放 | 日韩色视频| 国产精品高潮视频 | 欧美成人视 | 国产一区二区亚洲 | 成人黄色小视频在线观看 | 青草久久久久 | 亚洲精品av在线 | 国产18成人免费视频 | 亚洲国产二区 | 久久久久一区二区三区 | 久久久入口 | 欧美成人福利 | 国产精品18久久久久久久久 | 成人免费自拍视频 | 牛牛热这里只有精品 | 在线观看免费污视频 | 一夜新娘第三季免费观看 | 免费永久看羞羞片网站入口 | 久久久久免费精品国产小说色大师 | 久久国产精品成人免费网站 | 国产精品久久久久久久久久大牛 | 精选久久| 逼特逼视频在线观看 | 伊人二本二区 | 欧洲成人av| 成人毛片免费视频 |