学php正则!超基础简单例子
一直以来,我总以为正则表达式只需在必要时百度一下就能应对。在今日编写PHP代码时,我深刻意识到,原来我对正则表达式的理解远远不足。
面对这样的问题:如何在像 的URL地址后追加参数,同时避免产生重复的参数名,例如
下面是我用于处理返回上一页后台请求的函数:
```php
function _goBack($msg=null,$get=array()) {
$url = $_SESSION['BACKURL'];
if($get!=array()) {
foreach ($get as $k=>$g) {
$url .= '&'.$k.'='.$g; // 先追加所有要追加的参数,不管是否重复
if(preg_match_count("/&{$k}=[^&]+/", $url) > 1) { // 如果存在重复参数
$url = preg_replace("/&{$k}=[^&]+/", '', $url); // 使用正则替换去除重复参数
}
}
}
unset($_SESSION['BACKURL']);
$this->alert($msg,$url);
}
```
关于正则表达式的部分 `/{$k}=[a-zA-Z0-9]&/` ,如果我们假设 `$k="a"`,那么这个正则表达式的意思是匹配以 "a=" 开头,后面跟着任意字母数字组合(`[a-zA-Z0-9]` 表示任意字母或数字,这里的 `` 表示前面的字符可以重复任意次,包括0次),然后再跟着 `&` 的字符串。
为什么这个正则表达式可以去除重复参数呢?原理在于,当我们匹配到 `&a=x` 格式的字符串并替换为空时,最后一个 `&a=` 不会被删除。这是因为在循环中,我们每次都是把新的参数追加到最后。当我们在URL末尾看到重复的参数时,我们可以通过正则表达式将其删除,从而确保URL的整洁。
虽然正则表达式看起来有些复杂,但只要理解其基本原理和语法规则,就能轻松应对各种字符串处理需求。通过学习和实践,你会发现正则表达式其实是一种非常强大且实用的工具。
编程语言
- ThinkPad 笔记本如何调节LCD屏幕亮度
- Dreamweaver制作网页打开特效教程
- Win10 Mobile 10586升级后无限重启怎么办 硬重启帮您
- Win8系统提示音频设备有问题有一个或多个音频服
- Xbox One版Win10首个预览版9月份发布
- 如何在textarea文本输入区内实现换行
- Win10 Build 9901系统更新 预览版新版本下载
- McAfee Framework存在远程格式串处理漏洞
- Win10家庭版今日(7月30)正式在中国官方商城开卖
- Win10 Mobile预览版更新完10536.1000后才收到10536.100
- Win10 RS2更新了什么-Win10 RS2最终版本号1704首曝
- Windows7如何查看回收站对应的文件夹有哪些方法
- Win10让Charms栏回归桌面的方法教程
- 取消Windows XP系统开机启动画面的小技巧
- win8系统怎么下载安装USB百兆网卡?
- XP系统下磁盘空间变少了怎么办?XP系统磁盘空间