正規表示式 學習一

2022-07-26 12:18:13 字數 2437 閱讀 8863

正規表示式本質:記錄(匹配)文字(字元)規則的**工具(規則)。

\b是正規表示式規定的乙個特殊**(好吧,某些人叫它元字元,metacharacter),代表著單詞的開頭或結尾,也就是單詞的分界處。雖然通常英文的單詞是由空格,標點符號或者換行來分隔的,但是\b並不匹配這些單詞分隔字元中的任何乙個,它只匹配乙個位置

.是另乙個元字元,匹配除了換行符以外的任意字元。*同樣是元字元,不過它代表的不是字元,也不是位置,而是數量——它指定*前邊的內容可以連續重複使用任意次以使整個表示式得到匹配。因此,.*連在一起就意味著任意數量的不包含換行的字元。

\d是個新的元字元,匹配一位數字(0,或1,或2,或……)。

-不是元字元,只匹配它本身——連字元(或者減號,或者中橫線,或者隨你怎麼稱呼它)。

0\d\d-\d\d\d\d\d\d\d\d匹配這樣的字串:以0開頭,然後是兩個數字,然後是乙個連字型大小「-」,最後是8個數字(也就是中國的**號碼。我們也可以這樣寫這個表示式:0\d-\d。這裡\d後面的()的意思是前面\d必須連續重複匹配2次(8次)。

\s

匹配

任意的空白符,包括空格,製表符(tab),換行符,中文全形空格等.

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

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

元字元^(和數字6在同乙個鍵位上的符號)和$都匹配乙個位置,這和\b有點類似。^匹配你要用來查詢的字串的開頭,$匹配結尾。

示例:^\d$

這裡的和前面介紹過的是類似的,只不過匹配只能不多不少重複2次,則是重複的次數不能少於5次,不能多於12次,否則都不匹配。

因為使用了^和$,所以輸入的整個字串都要用來和\d來匹配,也就是說整個輸入必須是5到12個數字。

轉義字元(".","*","/")

如果你想查詢元字元本身的話,比如你查詢.,或者*,就出現了問題:你沒辦法指定它們,因為它們會被解釋成別的意思。這時你就得使用\來取消這些字元的特殊意義。因此,你應該使用\.和\*。當然,要查詢\本身,你也得用\\.

**/語法

說明*

重複零次或更多次

+

重複一次或更多次

?

重複零次或一次

重複n次

重複n次或更多次

重複n到m次

分支條件

正規表示式裡的分枝條件指的是有幾種規則,如果滿足其中任意一種規則都應該當成匹配,具體方法是用|把不同的規則分隔開。

使用分枝條件時,要注意各個條件的順序。原因是匹配分枝條件時,將會從左到右地測試每個條件,如果滿足了某個分枝的話,就不會去再管其它的條件了。

分組

用小括號來指定子表示式(也叫做分組)。然後你就可以指定這個子表示式的重複次數了,你也可以對子表示式進行其它一些操作(後面會有介紹)。

示例:(\d\.)\d是乙個簡單的ip位址匹配表示式。要理解這個表示式,請按下列順序分析它:\d匹配1到3位的數字,

(\d\.)匹配三位數字加上乙個英文句號(這個整體也就是這個分組)重複3次,最後再加上乙個一到三位的數字(\d)。

如果能使用算術比較的話,或許能簡單地解決這個問題,但是正規表示式中並不提供關於數學的任何功能,所以只能使用冗長的分組。

反義

有時需要查詢不屬於某個能簡單定義的字元類的字元。比如想查詢除了數字以外,其它任意字元都行的情況,這時需要用到反義:

常用的反義**

**/語法

說明\w

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

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

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

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

[^x]

匹配除了x以外的任意字元

[^aeiou]

匹配除了aeiou這幾個字母以外的任意字元

示例:\s+匹配不包含空白符的字串。

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

學習正規表示式(一)

十一大假,在家閒著無聊,想要模擬乙個jquery。最最棘手的問題 正規表示式。是個頭疼問題,所以我下定決心要搞定正則!首先,js中的正規表示式有乙個專門的類 var reg new regexp 這裡傳個正規表示式進去 有兩個驗證方法 reg.exec 需要驗證的字串 exec方法,如果所傳的字串匹...

正規表示式學習(一)

今天開始學習正規表示式,理由是遇到了一些合法性輸入驗證的問題,利用一些if判斷的方式來做,有點麻煩,而且這也不是長久之計。在網上 查了很多資料,發現正規表示式是一種可以對輸入合法性進行檢驗的高效的工具。摘自書中 從較低的層面上說,正規表示式描述的是一串文字的特徵。可以用它來驗證使用者輸入的資料,或者...

正規表示式學習

概念 正規表示式,就是用某種模式去匹配一類字串的乙個公式。基礎 下表列出了所有的元字元和對它們的乙個簡短的描述。簡單例子 vi 命令作用 s g 把乙個或者多個空格替換為乙個空格 s 去掉行尾的所有空格 s 在每一行頭上加入乙個空格 s 0 9 0 9 去掉行首的所有數字字元 s b aeio g ...