正規表示式

2021-06-20 21:49:36 字數 3353 閱讀 3430

一、基本符號

\b:只匹配乙個位置。它的前乙個字元和後乙個字元不全是

\w\w

:匹配字母或數字或下劃線或漢字等

.

匹配除了換行符以外的任意字元*:

代表前面的內容可以連續重複任意次。

0次或多次

+:匹配

1個或重複多次。

1次或多次

?:0次或

1次*?

:重複任意次,但盡可能少,最簡

+?:重複

1次或多次,盡可能少

??:重複0次或

1次,盡可能少

:重複n到m

次,盡可能少

.*

:代表任意數量的不包含換行的字元

\d:代表前面的數字

\d必須連續重複2次至

5次 :

n次或多次

\s:匹配任意的空白符,包括空格,製表符

tab,換行符,中文全形空格等^和

$:匹配開頭和結尾,如

^\d$

,則整個輸入必須是2到

5個數字,不能有其他字元;若沒有^和

$,則只要輸入的字元裡面有2到

5位數字即可,其他字元不管

^\w+

:匹配一行的第乙個單詞

二、轉義符號

\. 和\*  和

\\:轉義字元,匹配「

.」,「

*」,「

\」字元本身,而非元字元

[.?!]

:匹配「.」

或「?」

或「!」

三、反義符號

\w :匹配任意不是字母,數字,下劃線,漢字的字元

\s:匹配任意不是空白符的字元

\d:匹配任意非數字的字元

\b:匹配不是單詞開頭或結束的位置

[^abcd]

:匹配除了

abcd

這幾個字元以外的任意字元,

」^」表示非

]+>:匹配用尖括號括起來的以a開頭的字串

四、後向引用

使用小括號指定乙個子表示式,匹配這個子表示式的文字可以在表示式或其他程式中進一步處理。每個分組會自動擁有乙個組號,從左往右,從

1開始。

\b(\w+)\b\s+\1\b

:這個表示式首先是乙個單詞,也就是單詞開始處和結束處之間的多於乙個的字母或數字(\b(\w+)\b),這個單詞會**獲到編號為1的分組中,然後是1個或幾個空白符(\s+),最後是分組1中捕獲的內容(也就是前面匹配的那個單詞)(\1)。

(?\w+)

(或者把尖括號換成

'也行:

(?'word'\w+)

):可以自己指定子表示式的組名為「word」。

比如\b\w+(?=ing\b),匹配以ing結尾的單詞的前面部分(除了ing以外的部分),如查詢i'm singing while you're dancing.時,它會匹配sing和danc。

五、示例

匹配郵箱(可為空) (1)用於前台:/^([\w_-]+(?:\.[\w_-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?)|$/

(2)用於後台:^([\\w_-]+(?:\\.[\\w_-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?)|$

(3)匹配特殊字元:/^([\\w!#$%&'*+/=?^_`~-]

+(?:\\.[\\w!#$%&'*+/=?^_`~-]+)

*@(?:[\\w]

(?:[\\w-]*[\\w]

)?\\.

)+[\\w]

(?:[\\w-]*[\\w])?)|$/

【解說】

(1)必須指定開頭:否則「#[email protected]」也可匹配。必須指定結尾,否則「  」空格或「#」也可匹配(因為前面匹配 | ,為空,又不限制結尾)。

(2)後台使用:(不能加「/",否則不匹配)

pattern pattern = pattern.compile("。。。。");  

matcher matcher = pattern.matcher(。。。。);

if(!matcher.matches())

(3)

首先[ ]+

:字母與一些特殊字元,重複

1次或多次 接著

(?:expr)*

:匹配expr重複0

次到多次,

expr是「.

」加上字母或特殊字元的

1次到多次的重複

緊跟乙個「

@」符號。

接著匹配

:字元開頭,緊跟

至少乙個字元的字串(0到

1個),緊跟「.

」,這樣格式的

1次到多次的重複

緊跟乙個字元。

最後匹配至少乙個字元的字串(0到

1次)。

或者」|"匹配

空。匹配4位年份

/^[0-9][1-9]|[0-9][1-9][0-9]|[0-9][1-9][0-9]|[1-9][0-9]$/

3.   匹配**

^([0-9]\\-)?([2-9][0-9])([-#][0-9])?$

【解說】

目前**一般7~8位,(香港都是8位)

前面區號國內一般4位,台灣是2位

後面分機號,可用「-」或「#」分割。

4.  匹配中文

[\u4e00-\u9fa5]

5.  匹配中文,英文本母和數字及

_:^[\u4e00-\u9fa5_a-za-z0-9]+$

6. 

乙個正規表示式,只含有漢字、數字、字母、下劃線不能以下劃線開頭和結尾:

^(?!_)(?!.*?_$)[a-za-z0-9_\u4e00-\u9fa5]+$

【解說】

(?!_)

:不能以_開頭

(?!.*?_$)

:不能以_結尾

7.最長不得超過

7個漢字,或

14個位元組

(數字,字母和下劃線

)正規表示式

^[\u4e00-\u9fa5]$|^[\da-za-z_]$

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

非負整數 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正規表示式 編寫正規表示式

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