欢迎访问宙启技术站
智能推送

PHP的preg_match函数用法及例子

发布时间:2023-06-22 12:19:33

PHP的preg_match函数是一种正则表达式函数,用于在字符串中搜索模式,并可以将匹配的结果存放到数组中。常用于搜索某个字符串或者模板中特定的内容,实现数据处理和文本替换的功能。下面将介绍preg_match函数的用法及其例子。

语法:

int preg_match(string $pattern, string $subject [, array &$matches [, int $flags=0 [, int $offset=0 ]]])

说明:

$pattern:待匹配的正则表达式模式

$subject:要搜索的字符串

$matches:可选参数,储存搜索结果

$flags:可选参数,设置搜索标志

$offset:可选参数,开始搜索的起始位置

返回值:

成功时返回1,否则返回0或者错误代码。如果设置了$matches参数,则返回的结果将存储在(matches)数组中。

下面简单介绍preg_match函数的参数:

$pattern

该参数是用来定义正则表达式,表示要搜索的字符串模式。在正则表达式中,“.”可以匹配任何字符,“\d”表示数字,“\w”表示字母、数字或下划线,“\s”表示空白字符。正则表达式后面常跟“+”或“*”表示匹配的字符串一次或多次或零次。

$subject

该参数是要搜索的字符串,可以是任意形式,包括网页HTML代码、纯文本数据或其他格式的信息。

$matches

该参数是可选的数组变量,在搜索过程中会将所有匹配到的字符串存入到先前声明的数组中。如:

preg_match('/(\d+)-(\d+)-(\d+)/','2019-06-22',$matches);

print_r($matches);

则结果为:

Array

(

    [0] => 2019-06-22

    [1] => 2019

    [2] => 06

    [3] => 22

)

$flags

该参数表示搜索的标志位,常用的标志有两个:

i:表示不区分大小写

s:表示允许点(.)匹配任意字符

$offset

该参数表示从哪个位置开始搜索,默认为0。如果从第n个字符开始匹配,则可以设置为$offset=n。

下面给出两个preg_match函数的例子:

例子一:

判断一段字符串是否包含特定的字符或字符串,如果包含则进行处理,否则不做处理。

示例代码:

//判断字符串中是否包含JavaScript或C#语言

$str = "PHP is the best programming language. JavaScript is also great.";

if(preg_match('/javascript|c#/i',$str)){

    //如果包含,则输出相应的提示信息 

    echo "This string includes JavaScript or C# language.";

}else{

    //否则输出未找到信息

    echo "Sorry, we can not find JavaScript or C# language.";

}

实际输出:

This string includes JavaScript or C# language.

例子二:

将字符串中的电话号码取出来,存储到$matches数组中,并输出数组内容。

示例代码:

$str = "This is my phone number: 13888888888.";

preg_match('/1\d{10}/',$str,$matches);

print_r($matches);

实际输出:

Array

(

    [0] => 13888888888

)

以上两个例子均使用preg_match函数,对于字符串中的特定模式进行匹配,找到目标后进行相应的操作,实现数据处理的功能。由于preg_match函数功能强大,只要用好正则表达式,应用场景非常广泛。