PHP正则表达式学习笔记
1.0.1 preg_match()函数语法
int preg_match(string $pattern, string $subject, [, array &matches [, int $flags = 0, [int $offset = 0]]])
搜索 subject 与 pattern 给定的正则表达式的一个匹配
参数说明:
- pattern:要搜索的模式,字符串类型
- subject:输入字符串
- matches:可选参数,matches[0]为完整模式匹配到的文本,matches[1]为第一次匹配到的文本
- flags:可以是标记值:PREG_OFFSET_CAPTURE,对于每个字符串匹配返回时,都会附加字符串偏移量(这样会改变填充到matches的数组,使其每个元素为一个数组,数组的第0个元素为匹配到的文本,第1个元素为该字符串在输入字符串中的偏移量)
- offset:可选参数,指定在输入字符串中开始搜索的位置,默认为从输入字符串的开始位置开始搜索
preg_match()函数将返回pattern的匹配次数。返回值是0或1,preg_match()执行一次匹配后就停止,如果发生错误将返回False
例子1:
<?php
$subject = "I like php";
$pattern = "/like/i";
echo preg_match($pattern, $subject); //输出匹配的次数
?>
输出结果
1
例子2($matches):
<?php
$subject = "I like php";
$pattern = "/like/i";
preg_match($pattern, $subject, $matches);
print_r($matches);
?>
输出结果:
Array (
[0] => like //匹配结果
)
例子3($matches, PREG_OFFSET_CAPTURE):
<?php
$subject = "I like php";
$pattern = "/like/i";
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
echo '<br><br>';
echo $matches[0][0];
?>
输出结果:
Array (
[0] => Array ( //第一个匹配
[0] => like //匹配结果
[1] => 2 //偏移位置
) )
like //匹配结果