preg_match ( string $pattern
, string $subject
[, array &$matches
[, int $flags
= 0 [, int $offset
= 0 ]]] ) : intphp
参数 | 是否必须 | 说明 |
---|---|---|
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 ( string $pattern
, string $subject
[, array &$matches
[, int $flags
= PREG_PATTERN_ORDER
[, int $offset
= 0 ]]] ) : int数组
参数 | 是否必须 | 说明 |
pattern | 是 | 要搜索的模式,字符串形式。 |
subject | 是 | 输入字符串。 |
matches | 否 | 多维数组,做为输出参数输出全部匹配结果, 数组排序经过flags 指定。 |
flags | 否 |
|
offset | 否 | 用于 从目标字符串中指定位置开始搜索(单位是字节)。 |
返回值:返回完整匹配次数(多是0),或者若是发生错误返回FALSE
。blog
<?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);