正则表达式在 PHP 中的应用
在 PHP 应用中,正则表达式主要用于:
•正则匹配:根据正则表达式匹配相应的内容
•正则替换:根据正则表达式匹配内容并替换
•正则分割:根据正则表达式分割字符串
在 PHP 中有两类正则表达式函数,一类是 Perl 兼容正则表达式函数,一类是 POSIX 扩展正则表达式函数。二者差别不大,而且推荐使用Perl 兼容正则表达式函数,因此下文都是以 Perl 兼容正则表达式函数为例子说明。
定界符
Perl 兼容模式的正则表达式函数,其正则表达式需要写在定界符中。任何不是字母、数字或反斜线()的字符都可以作为定界符,通常我们使用 / 作为定界符。具体使用见下面的例子。
提示
尽管正则表达式功能非常强大,但如果用普通字符串处理函数能完成的,就尽量不要用正则表达式函数,因为正则表达式效率会低得多。关于普通字符串处理函数。
preg_match()
preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 。
语法:
int preg_match( string pattern, string subject [, array matches ] )
参数说明:
| 参数 |
说明 |
| pattern |
正则表达式 |
| subject |
需要匹配检索的对象 |
| matches |
可选,存储匹配结果的数组, $matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推 |
例子 1 :
复制代码 代码如下:
<?php
if(preg_match("/php/i", "PHP is the web scripting language of choice.", $matches)){
print "A match was found:". $matches[0];
} else {
print "A match was not found.";
}
?>
浏览器输出:
复制代码 代码如下:
A match was found: PHP
在该例子中,由于使用了 i 修正符,因此会不区分大小写去文本中匹配 php 。
提示
preg_match() 第一次匹配成功后就会停止匹配,如果要实现全部结果的匹配,即搜索到subject结尾处,则需使用 preg_match_all() 函数。
例子 2 ,从一个 URL 中取得主机域名 :
复制代码 代码如下:
<?php
// 从 URL 中取得主机名
preg_match("/^(http://)?([^/]+)/i","https://www./index.html", $matches);
$host = $matches[2];
// 从主机名中取得后面两段
preg_match("/[^./]+.[^./]+$/", $host, $matches);
echo "域名为:{$matches[0]}";
?>
浏览器输出:
复制代码 代码如下:
域名为:
preg_match_all()
preg_match_all() 函数用于进行正则表达式全局匹配,成功返回整个模式匹配的次数(可能为零),如果出错返回 FALSE 。
语法:
int preg_match_all( string pattern, string subject, array matches [, int flags ] )
参数说明:
| 参数 |
说明 |
| pattern |
正则表达式 |
| subject |
需要匹配检索的对象 |
| matches |
存储匹配结果的数组 |
| flags |
可选,指定匹配结果放入 matches 中的顺序,可供选择的标记有:
- PREG_PATTERN_ORDER:默认,对结果排序使 $matches[0] 为全部模式匹配的数组,$matches[1] 为第一个括号中的子模式所匹配的字符串组成的数组,以此类推
- PREG_SET_ORDER:对结果排序使 $matches[0] 为第一组匹配项的数组,$matches[1] 为第二组匹配项的数组,以此类推
- PREG_OFFSET_CAPTURE:如果设定本标记,对每个出现的匹配结果也同时返回其附属的字符串偏移量
|
下面的例子演示了将文本中所有 <pre></pre> 标签内的关键字(php)显示为红色。
复制代码 代码如下:
<?php
$str = "<pre>学习php是一件快乐的事。</pre><pre>所有的phper需要共同努力!</pre>";
$kw = "php";
preg_match_all('/<pre>([sS]*?)</pre>/',$str,$mat);
for($i=0;$i<count($mat[0]);$i++){
$mat[0][$i] = $mat[1][$i];
$mat[0][$i] = str_replace($kw, '<span style="color:#ff0000">'.$kw.'</span>', $mat[0][$i]);
$str = str_replace($mat[1][$i], $mat[0][$i], $str);
}
echo $str;
?>
正则匹配中文汉字
正则匹配中文汉字根据页面编码不同而略有区别:
•GBK/GB2312编码:[x80-xff>]+ 或 [xa1-xff]+
•UTF-8编码:[x{4e00}-x{9fa5}]+/u
例子:
复制代码 代码如下:
<?php
$str = "学习php是一件快乐的事。";
preg_match_all("/[x80-xff]+/", $str, $match);
//UTF-8 使用:
//preg_match_all("/[x{4e00}-x{9fa5}]+/u", $str, $match);
print_r($match);
?>
输出:
复制代码 代码如下:
Array
(
[0] => Array
(
[0] => 学习
[1] => 是一件快乐的事。
)
)
相关推荐:
ChatGPT为什么访问不了了?了解背后的原因与解决方法,AI怎么拖入路径
什么是seo伪原创,seo就业前景伪原创怎么写 ,头像ai画怎么弄
ChatGPT页面空白无法登录?如何解决这一困扰?,温州ai字幕生成
什么是seo概念,什么是seo,sem ,ai音标谐音
seo运营经理是什么,seo和运营的区别 ,皖妍ai宁慕晴o
二SEO是什么,h二seo三是什么 ,ai手术机
SEO大量优化:如何通过精准策略提升网站流量,突破搜索引擎排名瓶颈,吕梁本地网站推广平台
ChatGPT进不去怎么办?解决方案与技巧,轻松畅享智能对话,ai va
Chat启用后ESX连不上?解决方法一网打尽!,为什么AI续写这么离谱
什么是seo推广找行者SEO,seo推广效果怎么样 ,西宁ai万词霸屏系统
seo诊断什么意思,seo诊断a5 ,约瑟夫ai
文章AI指令提升写作效率的智能助手
SEO那么重要,企业如何通过它脱颖而出?,自媒体推广营销的概念
ChatGPT昨晚突然不能使用,背后真相令人意想不到!,edga ai
seo软件工具,seo软件是什么 ,AI妆容
SEO桔子:提升网站排名的必备法宝,seo外包销售
SEO有意:如何通过优化策略提升网站排名与流量,天津政府智慧网站建设
“只能写作”:在创作的世界里,选择文字,就是选择自由,云南关键词排名推广报价
优化百:开启数字时代的智能营销新时代,湘潭seo优化报价表
文章写作AI:让创作更高效、精准的智能助手
ChatGPT无法访问原因分析及解决方案,斑马ai报道
优排软件:高效管理新天地,轻松提升工作效率,长葛外贸网站建设
SEO功能:助力网站流量提升与品牌曝光,天津公司网站建设与维护
AI写作免费一键生成5000字:高效创作的革命性工具
seo规范是什么,seo行业标准 ,啊龙ai音乐
软件我在AI:改变未来的智能助手
SEO网络营销:如何通过精准优化提升品牌价值,青州建设网站电话
智能AI写作生成:如何借助人工智能提升创作效率与质量
文字生成AI开启创作的新纪元
SEO调整,助力网站流量爆发式增长!,江都seo优化排名
丹东抖音seo是什么,抖音seo引流 ,ai工具编写作业指导书
AI工具,让工作效率翻倍:AI工具教程全面解析
AI写作免费一键生成下载,助您轻松创作!
seo需要懂什么源码,seo需要懂什么源码技术 ,ai 纤维
SEO导航:助力网站提升流量与排名的必备工具,荣昌建筑网站建设
SEO场景下的数字营销:如何通过精准优化提升网站流量,陕西融发建设集团网站
UCMS:引领智慧医疗新时代,打造数字化健康未来,推广工作谈营销
SEO主要是为网站引流吗?深入解析SEO的核心价值,AI算算
SEO爱站:提升网站排名,赢得流量的秘密武器,优化网站设计价格多少
如何用AI写公众号文章?让创作更高效、更轻松
英语日记AI生成:轻松提升英语水平的智能助手
ChatGPT显示“此网站无法加载站点”:背后原因与解决办法详解,用ai画明度渐变条
ChatGPT出问题?背后的原因与解决方案,夸克ai写作生成
产品经理seo是什么,产品经理seo是什么意思 ,ai政府公文写作 软件
文章AI扩写:突破创作瓶颈,提升写作效率的秘密武器
SEO攻略:搜索引擎优化,快速提升网站排名,网站推广网站优化费用
SEO新闻:2025年最新趋势与最佳实践,你不可错过的SEO战略,郑州网络营销推广的优势
seo站内关键词优化,seo关键词优化经验技巧 ,ai 优点
ChatGPT维护页面-背后的技术与用户体验,ai领域ppt
SEO全站优化:打造强大网站排名的必备利器,AI论文写作的优点