浅谈php正则表达式中的非贪婪模式匹配的使用
网络编程 2025-03-13 08:32www.168986.cn编程入门
深入理解PHP正则表达式中的非贪婪模式匹配
当我们使用正则表达式进行匹配时,通常会采取一种默认的模式——贪婪模式。但在某些情况下,我们更希望匹配尽可能少的字符,这时就需要用到非贪婪模式。下面,我们就通过一个简单的例子来介绍如何在PHP中使用非贪婪模式。
假设我们有这样一个字符串 `$str`,其中包含了一个URL。如果我们想匹配这个URL中的"http:"后面的部分,我们可以使用贪婪模式的正则表达式:
```php
$str = "URL is //.baidu/.?url=.sina.";
preg_match("/http:(.)/", $str, $matches);
print_r($matches);
```
上述代码的输出会是:
```php
Array ( [0] => [1] => //.baidu/.?url=.sina. )
```
在贪婪模式下,`.` 会匹配任何字符,包括换行符,直到遇到下一个不匹配的字符。这意味着它会尽可能多地匹配字符。但在某些情况下,我们可能只希望匹配尽可能少的字符。这时就需要用到非贪婪模式。在PHP中,只需在限定符(如".")后面添加一个问号("?"),就可以将其转换为非贪婪模式。修改后的代码如下:
```php
$str = "URL is //.baidu/.?url=";
preg_match("/http:(.?)/", $str, $matches); // 使用非贪婪模式匹配"."后面的部分
print_r($matches);
```
这次输出的结果会是:
```php
上一篇:JS实现图片上传多次上传同一张不生效的处理方法
下一篇:没有了
编程语言
- 浅谈php正则表达式中的非贪婪模式匹配的使用
- JS实现图片上传多次上传同一张不生效的处理方法
- asp复制文件夹代码
- 微信小程序 自定义创建详细介绍
- vue.js如何更改默认端口号8080为指定端口的方法
- nodejs中用npm初始化来创建package.json的实例讲解
- vue.js中ref和$refs的使用及示例讲解
- Vue-resource拦截器判断token失效跳转的实例
- PHP实现带重试功能的curl连接示例
- cookie解决微信不能存储localStorage的问题
- FileSystemObject 对象
- vue-cli 如何打包上线的方法示例
- vue.js父子组件通信动态绑定的实例
- PHP 二维关联数组根据其中一个字段排序(推荐)
- 计算一个字符串在另一字符串中出现的次数函数
- 详解vue父子组件间传值(props)