詳解Flex正則表達(dá)式通用規(guī)則用法
在學(xué)習(xí)Flex的過程中,你可能會(huì)經(jīng)常遇到Flex正則表達(dá)式的概念,這里向大家簡(jiǎn)單描述一下,相信通過本文的學(xué)習(xí)你對(duì)Flex正則表達(dá)式的認(rèn)識(shí)會(huì)更加深入。
Flex正則表達(dá)式通用規(guī)則
還有一些在各個(gè)Flex正則表達(dá)式引擎之間比較通用的規(guī)則,在前面的講解過程中沒有提到。
1.表達(dá)式中,可以使用"\xXX"和"\uXXXX"表示一個(gè)字符("X"表示一個(gè)十六進(jìn)制數(shù))
形式字符范圍
\xXX
編號(hào)在0~255范圍的字符,比如:空格可以使用"\x20"表示
\uXXXX
任何字符可以使用"\u"再加上其編號(hào)的4位十六進(jìn)制數(shù)表示,比如:"\u4E2D"
2.在Flex正則表達(dá)式中"\s","\d","\w","\b"表示特殊意義的同時(shí),對(duì)應(yīng)的大寫字母表示相反的意義
表達(dá)式可匹配
\S
匹配所有非空白字符("\s"可匹配各個(gè)空白字符)
\D
匹配所有的非數(shù)字字符
\W
匹配所有的字母、數(shù)字、下劃線以外的字符
\B
匹配非單詞邊界,即左右兩邊都是"\w"范圍或者左右兩邊都不是"\w"范圍時(shí)的字符縫隙
3.在Flex正則表達(dá)式中有特殊意義,需要添加"\"才能匹配該字符本身的字符匯總
字符說明
^
匹配輸入字符串的開始位置。要匹配"^"字符本身,請(qǐng)使用"\^"
$
匹配輸入字符串的結(jié)尾位置。要匹配"$"字符本身,請(qǐng)使用"\$"
()
標(biāo)記一個(gè)子表達(dá)式的開始和結(jié)束位置。要匹配小括號(hào),請(qǐng)使用"\("和"\)"
[]
用來自定義能夠匹配'多種字符'的表達(dá)式。要匹配中括號(hào),請(qǐng)使用"\["和"\]"
{}
修飾匹配次數(shù)的符號(hào)。要匹配大括號(hào),請(qǐng)使用"\{"和"\}"
.
匹配除了換行符(\n)以外的任意一個(gè)字符。要匹配小數(shù)點(diǎn)本身,請(qǐng)使用"\."
?
修飾匹配次數(shù)為0次或1次。要匹配"?"字符本身,請(qǐng)使用"\?"
+
修飾匹配次數(shù)為至少1次。要匹配"+"字符本身,請(qǐng)使用"\+"
*
修飾匹配次數(shù)為0次或任意次。要匹配"*"字符本身,請(qǐng)使用"\*"
|
左右兩邊表達(dá)式之間"或"關(guān)系。匹配"|"本身,請(qǐng)使用"\|"
4.括號(hào)"()"內(nèi)的子表達(dá)式,如果希望匹配結(jié)果不進(jìn)行記錄供以后使用,可以使用"(?:xxxxx)"格式
舉例1:表達(dá)式"(?\w)\1)+"匹配"abbccddefg"時(shí),結(jié)果是"bbccdd"。括號(hào)"(?"范圍的匹配結(jié)果不進(jìn)行記錄,因此"(\w)"使用"\1"來引用。
5.常用的Flex正則表達(dá)式屬性設(shè)置簡(jiǎn)介:Ignorecase,Singleline,Multiline,Global
表達(dá)式屬性說明
Ignorecase
默認(rèn)情況下,表達(dá)式中的字母是要區(qū)分大小寫的。配置為Ignorecase可使匹配時(shí)不區(qū)分大小寫。有的表達(dá)式引擎,把"大小寫"概念延伸至UNICODE范圍的大小寫。
Singleline
默認(rèn)情況下,小數(shù)點(diǎn)"."匹配除了換行符(\n)以外的字符。配置為Singleline可使小數(shù)點(diǎn)可匹配包括換行符在內(nèi)的所有字符。
Multiline
默認(rèn)情況下,表達(dá)式"^"和"$"只匹配字符串的開始①和結(jié)尾④位置。如:
①xxxxxxxxx②\n
③xxxxxxxxx④
配置為Multiline可以使"^"匹配①外,還可以匹配換行符之后,下一行開始前③的位置,使"$"匹配④外,還可以匹配換行符之前,一行結(jié)束②的位置。
Global
主要在將表達(dá)式用來替換時(shí)起作用,配置為Global表示替換所有的匹配。
【編輯推薦】