首页 > 技术文章 > PHP正则表达式学习笔记

g0udan 2019-12-13 23:10 原文

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          //匹配结果

推荐阅读