preg_match — 執行匹配正則表達式
preg_match ( string $pattern
, string $subject
[, array &$matches
[, int $flags
= 0 [, int $offset
= 0 ]]] ) : int
參數 | 是否必須 | 說明 |
---|---|---|
pattern |
是 | 要搜索的模式 |
subject |
是 | 輸入字符串 |
matches | 否 | $matches[0]將包含完整模式匹配到的文本, $matches[1] 將包含第一個捕獲子組匹配到的文本,以此類推。 |
flags | 否 | 如果傳遞PREG_OFFSET_CAPTURE, 對於每一個出現的匹配返回時會附加字符串偏移量(相對於目標字符串的)。 |
offset | 否 | 通常,搜索從目標字符串的開始位置開始。可選參數 offset 用於 指定從目標字符串的某個位置開始搜索(單位是字節)。 |
返回值:返回 pattern
的匹配次數,如果發生錯誤preg_match()返回 FALSE
。
<?php
$str = 'abcdabccd';
preg_match('/(ab)(c+)/', $str, $matches);
preg_match('/(ab)(c+)/', $str, $matches2,PREG_OFFSET_CAPTURE);
preg_match('/(ab)(c+)/', $str, $matches3,PREG_OFFSET_CAPTURE,1);
var_dump($matches);
var_dump($matches2);
var_dump($matches3);
preg_match_all — 執行一個全局正則表達式匹配
preg_match_all ( string $pattern
, string $subject
[, array &$matches
[, int $flags
= PREG_PATTERN_ORDER
[, int $offset
= 0 ]]] ) : int
參數 | 是否必須 | 說明 |
pattern | 是 | 要搜索的模式,字符串形式。 |
subject | 是 | 輸入字符串。 |
matches | 否 | 多維數組,作爲輸出參數輸出所有匹配結果, 數組排序通過flags 指定。 |
flags | 否 |
|
offset | 否 | 用於 從目標字符串中指定位置開始搜索(單位是字節)。 |
返回值:返回完整匹配次數(可能是0),或者如果發生錯誤返回FALSE
。
<?php
$str = 'abcdabccd';
preg_match_all('/(ab)(c+)/', $str, $matches);
preg_match_all('/(ab)(c+)/', $str, $matches2,PREG_SET_ORDER);
preg_match_all('/(ab)(c+)/', $str, $matches3,PREG_OFFSET_CAPTURE);
var_dump($matches);
var_dump($matches2);
var_dump($matches3);