PHP常⽤功能模块 实验⼀:正则表达函数

实验⼀:正则表达函数
正则表达式(Regular Expression)是一种文本模式,是用某种模式去匹配一类字符串的一个公式。包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

一、preg_match()函数介绍
preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 。
preg_match() 匹配成功一次后就会停止匹配,如果要实现全部结果的匹配,则需使用preg_match_all() 函数。
preg_match() 语法:
int preg_match( string pattern, string subject [, array matches ] )
在这里插入图片描述
preg_match_all() 函数语法:
int preg_match_all( string pattern, string subject, array matches [, int flags ] )
在这里插入图片描述
例子:

<?php 
header("content-type:text/html;charset=utf-8");
date_default_timezone_set("PRC");//设置时间区
$content = "今天是".date("Y-m-d h:i a").",天气不错.</br>";//需要匹配的字符串。date函数返回当前时间。
echo $content;//输出原句与结果做对应
//preg_match()函数只做一次匹配,最终返回0或1的匹配结果数。$matches[0]将包含于整个模式匹配的文本
if (preg_match("/\d{4}-\d{2}-\d{2} \d{2}:\d{2} [ap]m/",$content,$matches))
{
	echo '匹配的时间是:'.$matches[0]."</br>";
}
//由于时间的模式明显,也可以简单的匹配
if(preg_match("/([\d-]{10}) ([\d:]{5} [ap]m)/",$content,$matches )){
	echo "当前的日期是:".$matches[1]."\n";
	echo "当前的时间是:".$matches[2]."\n";
}      
?>

在这里插入图片描述
具体含义可看runoob网站。
二、preg_replace()函数介绍
preg_replace 函数执行一个正则表达式的搜索和替换。

语法
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int KaTeX parse error: Expected 'EOF', got '&' at position 19: …it = -1 [, int &̲count ]] )
即:
preg_replace(正则表达式,替换成,字符串,最大替换次数默认为所有,替换次数)
说明:前三个参数均可以使用数组,或者字符串

参数说明:

$pattern: 要搜索的模式,可以是字符串或一个字符串数组。

$replacement: 用于替换的字符串或字符串数组。

$subject: 要搜索替换的目标字符串或字符串数组。

$limit: 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。

$count: 可选,为替换执行的次数。

返回值
如果 subject 是一个数组, preg_replace() 返回一个数组, 其他情况下返回一个字符串。
如果匹配被查找到,替换后的 subject 被返回,其他情况下 返回没有改变的 subject。如果发生错误,返回 NULL。

<?php 
header("content-type:text/html;charset=utf-8");
//preg_replace(正则表达式,替换成,字符串,最大替换次数默认为所有,替换次数)   
$a="放学铃响了,小明背起小明的书包回家去了!";
$b=preg_replace("/小明/","小白",$a);
$c=preg_replace("/小明/","小白",$a,1); //将$a里的小明替换成小白,且只要替换一次
echo $a."</br>";
echo $b."</br>";
echo $c;
?>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值