正则表达式小结

正则表达式与PHP函数应用详解
本文详细解析了正则表达式的元字符用法,包括任何字符、重复匹配等,并通过PHP代码实例展示了如何在实际场景中应用这些概念。此外,还介绍了正则表达式的边界匹配、组合匹配及在字符串操作中的应用,如日期格式匹配和特殊字符处理。最后,文章总结了正则表达式的高级功能,如替换和匹配模式的应用,并提供了实例代码演示。
 

 

/*
* 讲讲元字符 . 的用法
  .   任何字符的一次
  .?  任何字符的一次或者0次
  .+  任何字符的一次或者以上  每次都可以是不同的值譬如 abc
  .*  任何字符的0次或者以上   每次都可以是不同的值譬如 abc
*/
{i} 代表任何字符

$mode = '/a.b/';  $str = 'a{i}b'; 

$mode = '/a.?b/'; $str = 'a{i}b'; 或者  $str = 'ab';

$mode = '/a.+b/'; $str = 'a{i}。。。b';

$mode = '/a.*b/'; $str = 'a{i}。。。b'; 或者  $str = 'ab';
<pre class="php" name="code">/*
* 讲讲元字符 \b 的用法
* 匹配单词的边界  空格或者特殊字符(_不属于特殊字符)
*/

$mode = '/\bis\b/';  $str = 'where is';    ok

$mode = '/\bis\b/';  $str = 'where.is ';    ok

$mode = '/\bis\b/';  $str = 'where_is ';    error

$mode = '/\bis\b/';  $str = 'where.is ';    ok
<pre class="php" name="code">/*
* 讲讲元字符 ( )  的用法
* 合并整体匹配 放入内存,可使用\1 \2  类似  获取
*/

$mode = '/l(abc)l\\1/';  $str = 'labclabc';   
if (  preg_match($mode, $str, $arr) ) {
	echo '匹配成功';
	print_r($arr);
}
结果:
匹配成功
Array
(
    [0] => labclabc
    [1] => abc
)

/*
* 讲讲元字符 ( )  的用法
* 讲一个例子 譬如 年月  可以是 2014-12-12 或者 2014/12/12 或者 2014\12\12  或者 20141212
*/
 
$str = '2014-12-12';
$mode = '/2014(.*)12\\1(12)/s';  
$str = '2014-12-12';   
if (  preg_match($mode, $str, $arr) ) {
	echo '匹配成功';
	print_r($arr);
}
结果:
匹配成功
Array
(
    [0] => 2014-12-12
    [1] => -
    [2] => 12
)
<pre class="php" name="code">$mode = '/\d{4}(.*)\d{1,2}\\1\d{1,2}/s';  
$str = '2014-12-12';  
if (  preg_match($mode, $str, $arr) ) {
	echo '匹配成功';
	print_r($arr);
}
结果:
匹配成功
Array
(
    [0] => 2014-12-12
    [1] => -1
)

 

 

$mode = '/{(.*)}/U';  
$str = 'adk{who}oeo{is}rot{it}yor';  
preg_match_all($mode,$str,$arr);
print_r($arr);
结果:
Array
(
    [0] => Array
        (
            [0] => {who}
            [1] => {is}
            [2] => {it}
        )

    [1] => Array
        (
            [0] => who
            [1] => is
            [2] => it
        )

)


 

$mode = '/{(.*)}/U';  
$str = 'adk{who}oeo{is}rot{it}yor';  
echo preg_replace($mode, '中文', $str);
结果: adk中文oeo中文rot中文yor 


 

$mode = array('/{\w{3}}/', '/{\w{2}}/'); 
$mat = array('我是三个单词', '我是二个单词');
$str = 'adk{who}oeo{is}rot{it}yor'; 
echo preg_replace($mode, $mat, $str);
输出:
adk我是三个单词oeo我是二个单词rot我是二个单词yor 
 
$mode ='/([a-z])/i'; 
$str = '111a1111A111111b11'; 
echo preg_replace($mode, "md5(<a target=_blank href="file://\\1">\\1</a>)", $str);
输出:
111md5(a)1111md5(A)111111md5(b)11
 
$mode ='/([a-z])/ie'; 
$str = '111a1111A111111b11'; 
echo preg_replace($mode, "md5(<a target=_blank href="file://\\1">\\1</a>)", $str);
输出:1110cc175b9c0f1b6a831c399e26977266111117fc56270e7a70fa81a5935b72eacbe2911111192eb5ffee6ae2fec3ad71c777531578f11
 


 

小结:

小结:1.替换正则表达式 。2.正则表达式数组。3.在执行过程中通过修正符 e,把替换的内容运算后在替换

备注:preg_replace 函数 还有第四个参数 limit,替换的次数  preg_replace($mode,$mat,$str,$limit),limit如果是 1 的话就是替换一次就会停止

 

(1)普通用户端(全平台) 音乐播放核心体验: 个性化首页:基于 “听歌历史 + 收藏偏好” 展示 “推荐歌单(每日 30 首)、新歌速递、相似曲风推荐”,支持按 “场景(通勤 / 学习 / 运动)” 切换推荐维度。 播放页功能:支持 “无损音质切换、倍速播放(0.5x-2.0x)、定时关闭、歌词逐句滚动”,提供 “沉浸式全屏模式”(隐藏冗余控件,突出歌词与专辑封面)。 多端同步:自动同步 “播放进度、收藏列表、歌单” 至所有登录设备(如手机暂停后,电脑端打开可继续播放)。 音乐发现与管理: 智能搜索:支持 “歌曲名 / 歌手 / 歌词片段” 搜索,提供 “模糊匹配(如输入‘晴天’联想‘周杰伦 - 晴天’)、热门搜索词推荐”,结果按 “热度 / 匹配度” 排序。 歌单管理:创建 “公开 / 私有 / 加密” 歌单,支持 “批量添加歌曲、拖拽排序、一键分享到社交平台”,系统自动生成 “歌单封面(基于歌曲风格配色)”。 音乐分类浏览:按 “曲风(流行 / 摇滚 / 古典)、语言(国语 / 英语 / 日语)、年代(80 后经典 / 2023 新歌)” 分层浏览,每个分类页展示 “TOP50 榜单”。 社交互动功能: 动态广场:查看 “关注的用户 / 音乐人发布的动态(如‘分享新歌感受’)、好友正在听的歌曲”,支持 “点赞 / 评论 / 转发”,可直接点击动态中的歌曲播放。 听歌排行:个人页展示 “本周听歌 TOP10、累计听歌时长”,平台定期生成 “全球 / 好友榜”(如 “好友中你本周听歌时长排名第 3”)。 音乐圈:加入 “特定曲风圈子(如‘古典音乐爱好者’)”,参与 “话题讨论(如‘你心中最经典的钢琴曲’)、线上歌单共创”。 (2)音乐人端(创作者中心) 作品管理: 音乐上传:支持 “无损音频(FLAC/WAV)+ 歌词文件(LRC)+ 专辑封面” 上传,填写 “歌曲信息
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值