Flex正則表達(dá)式用法解析
本文和大家重點(diǎn)討論一下Flex正則表達(dá)式的概念,F(xiàn)lex正則表達(dá)式(regularexpression)就是用一個(gè)“字符串”來(lái)描述一個(gè)特征,然后去驗(yàn)證另一個(gè)“字符串”是否符合這個(gè)特征。
Flex正則表達(dá)式引言
Flex正則表達(dá)式(regularexpression)就是用一個(gè)“字符串”來(lái)描述一個(gè)特征,然后去驗(yàn)證另一個(gè)“字符串”是否符合這個(gè)特征。比如表達(dá)式“ab+”描述的特征是“一個(gè)'a'和任意個(gè)'b'”,那么'ab','abb','abbbbbbbbbb'都符合這個(gè)特征。
Flex正則表達(dá)式可以用來(lái):
(1)驗(yàn)證字符串是否符合指定特征,比如驗(yàn)證是否是合法的郵件地址。
(2)用來(lái)查找字符串,從一個(gè)長(zhǎng)的文本中查找符合指定特征的字符串,比查找固定字符串更加靈活方便。
(3)用來(lái)替換,比普通的替換更強(qiáng)大。
Flex正則表達(dá)式學(xué)習(xí)起來(lái)其實(shí)是很簡(jiǎn)單的,不多的幾個(gè)較為抽象的概念也很容易理解。之所以很多人感覺(jué)正則表達(dá)式比較復(fù)雜,一方面是因?yàn)榇蠖鄶?shù)的文檔沒(méi)有做到由淺入深地講解,概念上沒(méi)有注意先后順序,給讀者的理解帶來(lái)困難;另一方面,各種引擎自帶的文檔一般都要介紹它特有的功能,然而這部分特有的功能并不是我們首先要理解的。下面就向大家介紹一些Flex正則表達(dá)式的用法。
1.能夠與'多種字符'匹配的Flex正在表達(dá)式
Flex正則表達(dá)式中的一些表示方法,可以匹配'多種字符'其中的任意一個(gè)字符。比如,表達(dá)式"\d"可以匹配任意一個(gè)數(shù)字。雖然可以匹配其中任意字符,但是只能是一個(gè),不是多個(gè)。這就好比玩撲克牌時(shí)候,大小王可以代替任意一張牌,但是只能代替一張牌。
表達(dá)式可匹配
\d
任意一個(gè)數(shù)字,0~9中的任意一個(gè)
\w
任意一個(gè)字母或數(shù)字或下劃線,也就是A~Z,a~z,0~9,_中任意一個(gè)
\s
包括空格、制表符、換頁(yè)符等空白字符的其中任意一個(gè)
.
小數(shù)點(diǎn)可以匹配除了換行符(\n)以外的任意一個(gè)字符
舉例1:表達(dá)式"\d\d",在匹配"abc123"時(shí),匹配的結(jié)果是:成功;匹配到的內(nèi)容是:"12";匹配到的位置是:開(kāi)始于3,結(jié)束于5。
舉例2:表達(dá)式"a.\d",在匹配"aaa100"時(shí),匹配的結(jié)果是:成功;匹配到的內(nèi)容是:"aa1";匹配到的位置是:開(kāi)始于1,結(jié)束于4。
2.自定義能夠匹配'多種字符'的Flex正在表達(dá)式
使用方括號(hào)[]包含一系列字符,能夠匹配其中任意一個(gè)字符。用[^]包含一系列字符,則能夠匹配其中字符之外的任意一個(gè)字符。同樣的道理,雖然可以匹配其中任意一個(gè),但是只能是一個(gè),不是多個(gè)。
表達(dá)式可匹配
[ab5@]
匹配"a"或"b"或"5"或"@"
[^abc]
匹配"a","b","c"之外的任意一個(gè)字符
[f-k]
匹配"f"~"k"之間的任意一個(gè)字母
[^A-F0-3]
匹配"A"~"F","0"~"3"之外的任意一個(gè)字符
舉例1:表達(dá)式"[bcd][bcd]"匹配"abc123"時(shí),匹配的結(jié)果是:成功;匹配到的內(nèi)容是:"bc";匹配到的位置是:開(kāi)始于1,結(jié)束于3。
舉例2:表達(dá)式"[^abc]"匹配"abc123"時(shí),匹配的結(jié)果是:成功;匹配到的內(nèi)容是:"1";匹配到的位置是:開(kāi)始于3,結(jié)束于4。
【編輯推薦】