学php正则!超基础简单例子

编程学习 2025-05-15 02:32www.dzhlxh.cn编程入门

一直以来,我总以为正则表达式只需在必要时百度一下就能应对。在今日编写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的整洁。

虽然正则表达式看起来有些复杂,但只要理解其基本原理和语法规则,就能轻松应对各种字符串处理需求。通过学习和实践,你会发现正则表达式其实是一种非常强大且实用的工具。

Copyright © 2016-2025 www.dzhlxh.cn 金源码 版权所有 Power by

网站模板下载|网络推广|微博营销|seo优化|视频营销|网络营销|微信营销|网站建设|织梦模板|小程序模板