<?php
$a = "time to shop";
if(preg_match('/shop/', $a))
else
?>
結果如圖:
上面**的意思是在$a
中匹配shop
字串,如果匹配成功,則立刻停止匹配並輸出yes,否則繼續匹配,直到沒有匹配項,便輸出no。
其中的shop
就是正規表示式。
//
是分隔符,每個表示式必須包含在一對分隔符中。可以選擇任何非字母、數字、「/」或空格來進行分隔,若要在匹配的字串中加入「/」,則要用「\」進行轉義。例如:/http:/\/\/
。
有時要在結束分隔符之後加上模式修飾符,如:/shop/i
,該模式下將不區分大小寫匹配「shop」。
可以用"."匹配除換行符以外的任何字元的萬用字元。如:/.at/
可匹配「cat」、「mat」、「sat」、「#at」等字串。通常情況下該匹配符用於匹配作業系統的檔名。
也可用/[a-z]at/
來匹配,/[a-z]at/
的意思是以小寫字母a到小寫字母z開頭的後面為at的字串,即:「aat」、「bat」、「cat」……一直到「zat」都能匹配。「-」表示乙個範圍。
當表示式變成[^a-z]
,用來匹配任何不在a和z之間的字元。
[[:alnum:]]
用來匹配文字(英文本母、單詞)數字字元。
[[:alpha:]]
用來匹配字母。
[[:asci:]]
匹配acsii字元。
[[:space:]]
匹配空白字元。
[[:lower:]]
匹配小寫字母。
[[:upper:]]
匹配大寫字母。
[[:digit:]]
匹配小數。
[[:xdigit:]]
匹配十六進製制數字。
等等。注意,外部方括號是分隔字元類,而內部方括號是字元類名稱的一部分,如:
<?php
$a = '1234';
if(preg_match('/[[:alpha:]1-5]/',$a))
else
?>
結果為yes。當$a=abc
時,也輸出yes。其中正規表示式的意思為匹配字母或1到5的數字。
**「+」**可以表示這個模式可以出現1次或多次。
**「*」**可以表示這個模式可以出現0次或多次。
**「?」**可以表示這個模式可以出現0次或1次。
如:[[:alpha:]]+
表示「至少有乙個字母字元」。
用圓括號表示至少這些字串的乙個需要匹配該模式。如:
/(very)*large/
可以匹配"large"、「very large」、「very very large」。意思是匹配0次或多次出現very且必有large。
用花括號中使用數字表示式指定內容允許重複的次數或可重複次數的範圍。如:
/(very)/
可以匹配「very very」、「very very very」、「very very very」。
脫字符號^
用於正規表示式的開始,如/^bob/
用來匹配字元開始處匹配bob。
注意,要和上面字元不屬於某個集合的用法區分開
$
字元用於正規表示式末尾,表示一定要出現在末尾。/com$/
即匹配以com結尾的字串。
可以用|
來進行模式選擇,如/com|edu|net/
即匹配以com、edu或net結尾的字串。
若要匹配".","
else
?>結果如圖:
在這裡,用雙引號時,php直譯器將「\\\$」
解釋為\$
,然後正規表示式直譯器將其解釋為$
。
php學習筆記(八)陣列
陣列是特殊的變數,它可以同時儲存乙個以上的值。如果您有乙個專案列表 例如汽車品牌列表 在單個變數中儲存這些品牌名稱是這樣的 cars1 volvo cars2 bmw cars3 saab 不過,假如您希望對變數進行遍歷並找出特定的那個值?或者如果您需要儲存 300 個汽車品牌,而不是 3 個呢?解...
TCP IP學習筆記(八)
tcp ip學習筆記 八 一 ftp 檔案傳輸協議 1 ftp協議 採用2個tcp連線來傳輸乙個檔案。1 控制連線 控制連線通常以客戶伺服器方式建立。控制連線始終等待客戶與伺服器的通訊,該連線將命令從客戶端傳給伺服器,並傳回伺服器的應答。2 資料連線 該連線用於資料傳輸。2 資料表示 1 檔案型別 ...
TCP IP學習筆記(八)
tcp ip學習筆記 八 一 ftp 檔案傳輸協議 1 ftp協議 採用2個tcp連線來傳輸乙個檔案。1 控制連線 控制連線通常以客戶伺服器方式建立。控制連線始終等待客戶與伺服器的通訊,該連線將命令從客戶端傳給伺服器,並傳回伺服器的應答。2 資料連線 該連線用於資料傳輸。2 資料表示 1 檔案型別 ...