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);