正規表示式

2021-08-30 15:01:37 字數 1706 閱讀 9823

正規表示式android有些地方用到了正規表示式,如判讀**號碼是否有效,email是否有效等,把網上的資料簡單整理了一下與大家分享。

1.什麼是正規表示式

基本說來,正規表示式是一種用來描述一定數量文字的模式。regex代表regular express。

在編寫處理字串的程式或網頁時,經常會有查詢符合某些複雜規則的字串的需要。正規表示式就是用於描述這些規則的工具。換句話說,正規表示式就是記錄文字規則的**。

2.正規表示式中的特殊字元

[ ] \ ^ $ . | ? * + ( )

這些特殊字元也被稱作元字元。

如果你想在正規表示式中將這些字元用作文字字元,你需要用反斜槓「\」對其進行換碼 (escape)。例如你想匹配「1+1=2」,正確的表示式為<<1\+1=2>>.

需要注意的是,<<1+1=2>>也是有效的正規表示式。但它不會匹配「1+1=2」,而會匹配「123+111=234」中的「111=2」。因為「+」在這裡表示特殊含義(重複1次到多次)。

在程式語言中,要注意,一些特殊的字元會先被編譯器處理,然後再傳遞給正則引擎。因此正規表示式<<1\+2=2>>在c++中要寫成「1\\+1=2」。為了匹配「c:\temp」,你要用正規表示式<>。而在c++中,正規表示式則變成了「c:\\\\temp」。

3.元字元描述

. 匹配任何單個字元。例如正規表示式r.t匹配這些字串:rat、rut、r t,但是不匹配root。

$匹配行結束符。例如正規表示式weasel$ 能夠匹配字串"he's a weasel"的末尾,但是不能匹配字串"they are a bunch of weasels."。

^匹配一行的開始。例如正規表示式^when in能夠匹配字串"when in the course of human events"的開始,但是不能匹配"what and when in the"。

*匹配0或多個正好在它之前的那個字元。例如正規表示式.*意味著能夠匹配任意數量的任何字元。

[ ]

匹配括號中的任何乙個字元。例如正規表示式r[aou]t匹配rat、rot和rut,但是不匹配ret。可以在括號中使用連字元-來指定字元的區間,例如正規表示式[0-9]可以匹配任何數字字元;還可以制定多個區間,例如正規表示式[a-za-z]可以匹配任何大小寫字母。另乙個重要的用法是「排除」,要想匹配除了指定區間之外的字元——也就是所謂的補集——在左邊的括號和第乙個字元之間使用^字元,例如正規表示式[^269a-z] 將匹配除了2、6、9和所有大寫字母之外的任何字元。

( )將 ( 和 ) 之間的表示式定義為「組」(group),並且將匹配這個表示式的字元儲存到乙個臨時區域(乙個正規表示式中最多可以儲存9個),它們可以用

到的符號來引用。

|將兩個匹配條件進行邏輯「或」(or)運算。例如正規表示式(him|her) 匹配"it belongs to him"和"it belongs to her",但是不能匹配"it belongs to them."。注意:這個元字元不是所有的軟體都支援的。

+匹配1或多個正好在它之前的那個字元。例如正規表示式9+匹配9、99、999等。注意:這個元字元不是所有的軟體都支援的。

?匹配0或1個正好在它之前的那個字元。注意:這個元字元不是所有的軟體都支援的。

匹配指定數目的字元,這些字元是在它之前的表示式定義的。例如正規表示式a[0-9]\ 能夠匹配字元"a"後面跟著正好3個數字字元的串,例如a123、a348等,但是不匹配a1234。而正規表示式[0-9]\ 匹配連續的任意4個、5個或者6個數字字元。

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...