您好,登錄后才能下訂單哦!
這篇文章主要介紹了Flex正則表達式中的通用規則有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
首先讓我們看一下Flex正則表達式的概念和作用,Flex正則表達式(regularexpression)就是用一個“字符串”來描述一個特征,然后去驗證另一個“字符串”是否符合這個特征。
引言
Flex正則表達式(regularexpression)就是用一個“字符串”來描述一個特征,然后去驗證另一個“字符串”是否符合這個特征。比如表達式“ab+”描述的特征是“一個'a'和任意個'b'”,那么'ab','abb','abbbbbbbbbb'都符合這個特征。
Flex正則表達式可以用來:
(1)驗證字符串是否符合指定特征,比如驗證是否是合法的郵件地址。
(2)用來查找字符串,從一個長的文本中查找符合指定特征的字符串,比查找固定字符串更加靈活方便。
(3)用來替換,比普通的替換更強大。
Flex正則表達式學習起來其實是很簡單的,不多的幾個較為抽象的概念也很容易理解。之所以很多人感覺Flex正則表達式比較復雜,一方面是因為大多數的文檔沒有做到由淺入深地講解,概念上沒有注意先后順序,給讀者的理解帶來困難;另一方面,各種引擎自帶的文檔一般都要介紹它特有的功能,然而這部分特有的功能并不是我們首先要理解的。下面看一下Flex正則表達式中的其他通用規則。
1.其他通用規則
還有一些在各個Flex正則表達式引擎之間比較通用的規則,在前面的講解過程中沒有提到。
1.1表達式中,可以使用"\xXX"和"\uXXXX"表示一個字符("X"表示一個十六進制數)
形式 字符范圍
\xXX
編號在0~255范圍的字符,比如:空格可以使用"\x20"表示
\uXXXX
任何字符可以使用"\u"再加上其編號的4位十六進制數表示,比如:"\u4E2D"
1.2在Flex正則表達式"\s","\d","\w","\b"表示特殊意義的同時,對應的大寫字母表示相反的意義
表達式可匹配
\S
匹配所有非空白字符("\s"可匹配各個空白字符)
\D
匹配所有的非數字字符
\W
匹配所有的字母、數字、下劃線以外的字符
\B
匹配非單詞邊界,即左右兩邊都是"\w"范圍或者左右兩邊都不是"\w"范圍時的字符縫隙
1.3在Flex正則表達式中有特殊意義,需要添加"\"才能匹配該字符本身的字符匯總
字符說明
^
匹配輸入字符串的開始位置。要匹配"^"字符本身,請使用"\^"
$
匹配輸入字符串的結尾位置。要匹配"$"字符本身,請使用"\$"
()
標記一個子表達式的開始和結束位置。要匹配小括號,請使用"\("和"\)"
[]
用來自定義能夠匹配'多種字符'的表達式。要匹配中括號,請使用"\["和"\]"
{}
修飾匹配次數的符號。要匹配大括號,請使用"\{"和"\}"
.
匹配除了換行符(\n)以外的任意一個字符。要匹配小數點本身,請使用"\."
?
修飾匹配次數為0次或1次。要匹配"?"字符本身,請使用"\?"
+
修飾匹配次數為至少1次。要匹配"+"字符本身,請使用"\+"
*
修飾匹配次數為0次或任意次。要匹配"*"字符本身,請使用"\*"
|
左右兩邊表達式之間"或"關系。匹配"|"本身,請使用"\|"
1.4括號"()"內的子表達式,如果希望匹配結果不進行記錄供以后使用,可以使用"(?:xxxxx)"格式
舉例1:表達式"(?\w)\1)+"匹配"abbccddefg"時,結果是"bbccdd"。括號"(?"范圍的匹配結果不進行記錄,因此"(\w)"使用"\1"來引用。
1.5常用的Flex正則表達式屬性設置簡介:Ignorecase,Singleline,Multiline,Global
表達式屬性說明
Ignorecase
默認情況下,表達式中的字母是要區分大小寫的。配置為Ignorecase可使匹配時不區分大小寫。有的表達式引擎,把"大小寫"概念延伸至UNICODE范圍的大小寫。
Singleline
默認情況下,小數點"."匹配除了換行符(\n)以外的字符。配置為Singleline可使小數點可匹配包括換行符在內的所有字符。
Multiline
默認情況下,表達式"^"和"$"只匹配字符串的開始①和結尾④位置。如:
①xxxxxxxxx②\n
③xxxxxxxxx④
配置為Multiline可以使"^"匹配①外,還可以匹配換行符之后,下一行開始前③的位置,使"$"匹配④外,還可以匹配換行符之前,一行結束②的位置。
Global
主要在將表達式用來替換時起作用,配置為Global表示替換所有的匹配。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Flex正則表達式中的通用規則有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。