函數preg_grep()
此函數與preg_match()函數和preg_match_all()不同的是符合陣列中的元素,傳回與正規表示式相符的陣列單元,此函數的語法格式如下:
array preg_grep(string pattren,array input)
此函數傳回一個數組,其中包含了第二個參數input數組中與給定的第一個參數pattern模式相符的單元。對於輸入數組input中的每個元素,只進行一次匹配。此函數的使用程式碼範例如下所示:
<?php $preg = '^d{3,4}-?\d{7,8}'; $arr = array('043212345678','0431-7654321','12345678'); $preg_arr = preg_grep($preg,$arr); var_dump($preg_arr); ?>
在陣列$arr中符合具有正確格式的電話號碼(010-1234****等),並儲存到另一個陣列中。
字串處理函數strstr()、strpos()、strrpos()、substr()
如果只是尋找字串中是否包含某個子字串,建議使用strstr()或strpos()函數,如果只是簡單地從一個字串中取出一段子字串,建議使用substr()函數。雖然PHP提供的字串處理函數不能完成複雜的字串匹配,但處理一些簡單的字串匹配,執行效率則要比使用正規表示式稍高一些。
函數strstr()搜尋一個字串在另一個字串中的第一次的出現,該函數傳回字串的其餘部分(從匹配點)。如果未找到所搜尋的字串,則傳回FALSE。此函數對大小寫敏感,如需進行大小寫不敏感的搜索,可使用stristr()函數。此函數有兩個參數,第一個參數提供被搜尋的字串,第二個參數為所搜尋的字串,如果該參數是數字,則搜尋符合數字ASCII值的字元。函數的使用程式碼如下所示:
<?php echo strstr("this is a test!","test"); echo strstr("this is a test!",115); ?>
函數strpos()傳回字串在另一個字串中第一次出現的位置,如果沒有找到字串,則傳回false。函數strrpos()和函數strpos()相似,用來找出字串在另一個字串中最後一次出現的位置。這兩個函數對大小寫敏感,如需進行對大小寫不敏感的搜索,可以使用stripos()和strripos()函數。函數substr()則可以傳回字串的一部分。
以上是與Perl相容的正規表示式函數(二)的詳細內容。更多資訊請關注PHP中文網其他相關文章!