正規表示式

2021-06-26 22:26:02 字數 1567 閱讀 2413

感覺這幾天學習一直不在狀態,又重新把web開發的內容從基礎開始學了一遍,可是學的時候並不是像我當初想的那樣,像複習一樣過一遍就行了,看來我錯了,當初學習正規表示式的時候,認為把一些常用的元字元和修正符記住就行了,可是,現在把正規表示式學了一遍又一遍,每次學都有不同的理解,同時也謝謝我**幫助學習正規表示式,,

1.正規表示式的語法

定界符號

除了字母、數字和正斜線\以外的任何字元都可以都定界符號  /  /  原子

原子是正規表示式最基本組成單位,而且必須至少要包含乙個原子 

在正規表示式中代表範圍的原子

\d : 表示任意乙個十進位制的數字

\d : 表示任意乙個除數字以外的字元

\s  :  表示任意乙個空白字元、空格、\n\r\t\f

\s  :  表示任意乙個非空白

\w :  表示任意乙個字 a-z a-z 0-9_

\w : 表示任意乙個非字,除了a-za-z0-9_以外的任意乙個字元

元字元元字元是用來修飾原子用的,不可以單獨使用

* :  表示其前原子可以出現0次、1次或多次

+ : 表示其前原子可以出現1次或多次

?: 表示其前的原子可以出現0次或1次

{}: 用於自己定義前面原子出現的次數 

表示乙個整數,表示其前原子只能出現m次

m和n表示乙個整數,m 於n

表示前面的原子出現的次數大於等於m次

. :預設情況下,表示除換行符外的任意字元

^:直接在乙個正規表示式的第乙個字元出現,則必須以這個表示式開始

$:直接在正規表示式的最後乙個字元出現,則必須以這個表示式結束

| : 表示或的關係,優先順序是最低的,最後考慮它的功能

(): 1.作為大原子使用

2.改變優先順序

3.作為子模式使用,正規表示式不光對乙個字串匹配一次,全部匹配作為乙個

大模式,放到陣列的第乙個元素中,每個()是乙個子模式按順序放到陣列的

其他元素中去

4.可以取消子模式,就將()作為大原子或改變優先順序使用,在括號中最前面使 

用?:就可以取消()子模式

5.反向引用,在模式中直接將子模式取出來

\1 取第乙個子模式  \2取第二個子模式  主義單引號和雙引號

"\\1"     '\1'

\b: 表示乙個邊界

\b: 表示乙個非邊界

模式修正符

1.模式修正符可以使用乙個,每乙個具有一定的意義。也可以連續使用多個

2.是對整個正規表示式調優使用,是對正規表示式功能的擴充套件

i: 和模式進行匹配不區分大小寫

m:將字串視為一行

s: . 預設情況下,不能換行,如果使用修正符s則表示換行

x:模式中的空白忽略不計

a:表示必須以什麼開發

z:表示必須以什麼結尾

u:正規表示式的特點:就是比較貪婪,.* ,.+所有字元符合這種要求

解決的方法:

使用模式修正符 u

另一種使用?完成     .*?     .+?

如果兩種情況同時出現,則又開啟貪婪

/原子和元字元/模式修正符號  /為定界符

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

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

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