目錄
分隔符
字元類和類型
重複
子表達式
子表達式計數
定位到字元串的開始或末尾
分支
比對特殊字元
特殊字元含義
- 正規表達式必須包含在一對分隔符中。可以選擇任何非字母,數字,"\" 或空格的字元作為分隔符。字元串的開始和結束必須有比對的分隔符。
- 最常用的分隔符是"/"。 如比對"shop": /shop/
- 如果要在正規表達式中比對字元"/",需要使用"\"來轉義"/"。如比對"http://": /http:\/\//
- 可以用字元"."作為比對除換行符(\n)之外任何字元的通配符。如:/.at/ 可以比對“cat”,“sat”,“mat”等,通常這種通配符的比對适用于作業系統的檔案名比對。
- /[a-z]at/ 表示第一個字元是a到z之間的字元,後面比對at;任何[ ]中的内容都是一個字元類,也就是說方括号内的表達式隻比對一個字元。
- /[a-zA-Z]/ 表示比對大小寫的任何字元。
- /[^a-z]/ 用來比對任何不在a和z之間的字元。當 ^ 符号在 [ ] 中時,表示否的意思。
- "*"表示這個模式可以重複出現0次或多次。
- "+"表示這個模式可以重複出現1次或多次。
- "?" 表示這個模式可以重複出現1次或0次。
- /[[:alnum:]]+/ 表示至少有一個字母字元。
- 通常,可以将一個表達式分隔為幾個子表達式,如:/(very)*large/ 表示very可以重複出現0次或多次,可以比對“large”,“very large”,“very very large”等。
- { } 中使用數字表達式來指定内容允許重複的次數。
- /(very){3}/ 表示very重複3次
- /(very){1,3}/ 表示very重複1~3次
- /(very){2, }/ 表示最少要重複2次
- ^ 用于正規表達式的開始,表示子字元串必須出現在被搜尋字元串的開始處。
- $ 用于正規表達式的末尾,表示子字元串必須出現在被搜尋字元串的末尾。
- /^bob/ 表示要在開始處比對 bob - /com$/ 表示要以com結束
- | 在正規表達式中表示模式選擇。
- /com|edu|net/ 表示比對com 或edu 或net
- 如果要比對一個特殊字元,如“.”,“{”,“$”,就必須在它們前面加一個反斜杠“\”。
- 如果要比對一個反斜杠“\”,則必須用兩個反斜杠“\\”來表示。
- 在php中,必須使用單引号來引用正規表達式模式。使用雙引号引用的正規表達式将帶來一些不必要的複雜性。
字元 | 意義 | ||
---|---|---|---|
\ | 轉義字元 | ) | 子模式的結束 |
^ | 在字元串開始比對 | * | 重複0次或更多次 |
$ | 在字元串末尾比對 | + | 重複一次或更多次 |
. | 比對除換行符\n之外的字元 | { | 最小/最大量記号的開始 |
| | 選擇分支的開始(或) | } | 最小/最大量記号的結束 |
( | 子模式的開始 | ? | 标記一個子模式為可選的 |
非,僅用在開始位置 | |
- | 用于指定字元範 |