這次帶給大家正規的操作符使用詳解,使用正規操作符的注意事項有哪些,下面就是實戰案例,一起來看一下。
本文實例講述了正規表示式中的運算子及說明。分享給大家供大家參考,具體如下:
一、普通字元
包括所有未明確指定為元字元的列印和非列印字元組成,如大小寫字母、數字、標點符號等。
二、元字元
元字元是一些在正規表示式裡有著特殊意義的字元。因為元字元在正規表示式裡有著特殊的意義,所以這些字元不能用來代表它們本身,必須透過給它加個反斜線前綴來轉義,如此得到的轉義序列將會匹配那個字元本身而不是它特殊的元字元意義。如[表示一個字元集合的開始,如果在正規表示式中要匹配[,那麼需要這樣引用:\[,才能表示[本身。
^ | 符合輸入字元字串的起始位置,除非在方括號表達式中使用,此時它表示不接受該字元集合。若要符合 ^ 字元本身,請使用 \^。 |
$ | 符合輸入字串的結尾位置。如果設定多行匹配,則 $ 也匹配 '\n' 或 '\r'。若要符合 $ 字元本身,請使用 \$。 |
() | 標記一個子運算式的開始和結束位置。子表達式可以取得以供以後使用。若要匹配這些字符,請使用 [Math Processing Error]。 |
? | 符合前面的子表達式零次或一次,或指明一個非貪婪限定符。若要匹配 ? 字符,請使用 \?。 |
* | 符合前面的子運算式是零次或多次。若要匹配 * 字符,請使用 \*。 |
+ | 符合前面的子表達式一次或多次。若要匹配 + 字符,請使用 \+。 |
. | 符合除換行符 \n以外的任何單字元。若要符合 .,請使用 \。 |
[] | 標記一個字元集合的開始和結束。若要符合 [或],請使用 [Math Processing Error]。 |
\ | 將下一個字元標記為特殊字元、或原義字元、或向後引用、或八進位轉義符。例如, 'n' 匹配字元 'n'。 '\n' 符合換行符。序列'\\' 符合"\",而'\(' 則符合"("。 |
#| | 指明兩項之間的選擇。要符合|,請使用\|。 }。 #符合由x指明的控製字元。 |
符合一個換頁符號。 | 符合一個換行符。 cM。 v |
##.
任何字元(與結束符號\r\n可能匹配也可能不符)\d | 數字,等價於[0-9] |
\D | 非數字,等價於[^0-9] |
\s | 空白字符,等價於[ \t\n\x0B\f\r] |
\S | 非空白字符,等價於[^\s] |
\w | 單字字符,等價於[a-zA-Z_0 -9] |
\W | 非單字字符,等價於[^\w] |
單字的前後邊界
表示非單字邊界 |
[:alnum:] | 任何一個字母或數字,等價於[a -zA-Z0-9] |
[:alpha:] | 任何一個字母,等價於[a-zA-Z] |
[:blank:] | 空格或製表符,等價於[\t] |
[:cntrl:] | ASCII控製字元(ASCII 0到31,再加上ASCII127) |
[:digit:] | 任何一個數字,等價於[0- 9] |
[:graph:] | 任何一個可列印字符,但不包括空格 |
[:lower :] | 任何一個小寫字母,等價於[a-z] |
#[:print:] | 任何一個可列印字元 |
[:punct:] | 既不屬於[:alnum:]和[:cntrl:]的任何一個字元 |
[:space:] | 任何一個空白字符,包括空格,等價於[^\f\n\r\t\v] |
[:upper :] | 任何一個大寫字母,等價於[A-Z] |
#[:xdigit:] | 任何一個十六進位數字,等價於[a-fA-F0-9] |
#六、限定符
* | 符合前面的子表達式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。 * 等價於{0,}。 |
+ | 符合前面的子表達式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。 + 等價於{1,}。 |
? | 符合前面的子運算式是零次或一次。例如,"do(es)?"可以符合 "do" 或"does" 中的"do" 。 ? 等價於 {0,1}。 |
{n} | n 是非負整數。配對確定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的兩個 o。 |
{n,} | n 是一個非負整數。至少匹配n 次。例如,'o{2,}' 不能符合 "Bob" 中的 'o',但能符合 "foooood" 中的所有 o。 'o{1,}' 等價於 'o+'。 'o{0,}' 則等價於 'o*'。 |
{n,m} | m 和 n 皆為非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 將符合 "fooooood" 中的前三個 o。 'o{0,1}' 等價於 'o?'。請注意逗號和兩個數字之間不能有空格。 |
這裡只是按照功能的不同來對正規表示式中用到的一些操作符進行分類,不一定準確,只是為了說明正規表示式中的運算符。
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是正規的操作符使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!