目錄 分隔符 字元類和類型 重覆 子表達式 子表達式計數 定位到字元串的開始或末尾 分支 匹配特殊字元 特殊字元含義 分隔符 正則表達式必須包含在一對分隔符中。可以選擇任何非字母,數字,"\" 或空格的字元作為分隔符。字元串的開始和結束必須有匹配的分隔符。 最常用的分隔符是"/"。 如匹配"shop ...
目錄
分隔符
- 正則表達式必須包含在一對分隔符中。可以選擇任何非字母,數字,"\" 或空格的字元作為分隔符。字元串的開始和結束必須有匹配的分隔符。
- 最常用的分隔符是"/"。 如匹配"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之外的字元 | { | 最小/最大量記號的開始 |
| | 選擇分支的開始(或) | } | 最小/最大量記號的結束 |
( | 子模式的開始 | ? | 標記一個子模式為可選的 |
字元 | 意義 |
---|---|
\ | 轉義字元 |
^ | 非,僅用在開始位置 |
- | 用於指定字元範 |