正規表示式

2022-03-26 14:32:33 字數 1457 閱讀 8697

正規表示式,又稱為規則表示式。通常用來檢索、替代那些符合某個模式(規則)的文字。

正規表示式的三個特點:1. 靈活性、邏輯性和功能性非常的強;2. 可以迅速地用極簡單的方式達到字串的複雜控制。3. 對於剛接觸的人來說,比較晦澀難懂。

1、元字元:

常用的元字元

符號說明

.匹配除換行符以外的任意字元

\w匹配字母或者數字或下劃線或漢字

\s匹配任意的空白符

\d匹配數字

\b匹配單詞的開始或結束

^匹配字元的開始

$匹配字元的結束

例子:\ba\w*\b匹配以字母a開頭的單詞——先是某個單詞開始處(\b),然後是字母a,然後是任意數量的字母或數字(\w*),最後是單詞結束處(\b)。

\d+匹配1個或更多連續的數字。這裡的+是和*類似的元字元,不同的是*匹配重複任意次(可能是0次),而+則匹配重複1次或更多次。

\b\w\b 匹配剛好6個字元的單詞。則是重複的次數不能少於5次,不能多於12次,否則都不匹配。

2、字元轉義:

如果你想查詢元字元本身的話,比如你查詢.

,或者*

,就出現了問題:你沒辦法指定它們,因為它們會被解釋成別的意思。這時你就得使用\

來取消這些字元的特殊意義。因此,你應該使用\.

和\*。當然,要查詢\

本身,你也得用\\.

例如:baidu\.com匹配baidu.com

,c:\\windows匹配c:\windows。

3、限定符(重複):

你已經看過了前面的*,+,,

這幾個匹配重複的方式了。下面是正規表示式中所有的限定符(指定數量的**,例如*,等):

常見的限定符

**說明

*重複0次或更多次

+重複一次或更多次

?重複零次或一次

重複n次

重複n次或者更多次

重複n到m次

4、字元類:

要想查詢數字,字母或數字,空白是很簡單的,因為已經有了對應這些字元集合的元字元,但是如果你想匹配沒有預定義元字元的字元集合(比如母音字母a,e,i,o,u),應該怎麼辦?

很簡單,你只需要在方括號裡列出它們就行了,像[aeiou]就匹配任何乙個英文母音字母,[.?!]匹配標點符號(.或?或!)。

我們也可以輕鬆地指定乙個字元範圍,像[0-9]代表的含意與\d就是完全一致的:一位數字;同理[a-z0-9a-z_]也完全等同於\w(如果只考慮英文的話)。

下面是乙個更複雜的表示式:\(?0\d[) -]?\d。

這個表示式可以匹配幾種格式的**號碼,像(010)88886666,或022-22334455,或02912345678等。我們對它進行一些分析吧:首先是乙個轉義字元\(,它能出現0次或1次(

?),然後是乙個0,後面跟著2個數字(

\d),然後是)或-或空格中的乙個,它出現1次或不出現(

?),最後是8個數字(

\d)。

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

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

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