php正则表达式中的非贪婪模式匹配
一般情况下,正则表达式的匹配是贪婪模式的,比如下面这个例子:
字符串:....src="http://www.bloghome.cn/1.mp3" type="application/x-mplayer2" ....
要求的结果:http://www.bloghome.cn/1.mp3
如果匹配表达式写为:/src="(.*)"/,则得不到正确的结果,因为最后一个双引号的匹配是贪婪模式的。
解决办法:匹配表达式写为:
/src="(.*)".?/
上面表达式中,".?是非贪婪模式匹配。也就是说,只要在一个字符后面跟上限定个数的特殊字符,匹配就是非贪婪模式了。
相关推荐
-
php正则表达匹配中文问题分析小结
复制代码 代码如下: $str = '中华人民共和国123456789abcdefg'; echo preg_match("/^[u4e00-u9fa5_a-zA-Z0-9]{3,15}$",$strName); 运行一下上面这段代码,看会有什么提示信息? Warning: preg_match(): Compilation failed: PCRE does not support L, l, N, P, p, U, u, or X at offset 3 in F:wwwrootp
-
php用正则表达式匹配URL的简单方法
在PHP的官网上看到的parse_url()函数的替代方案.结果和parse_url()函数差不多,是使用正则实现的.URI 是 Web上可用的每种资源 - HTML文档.图像.视频片段.程序等 - 由一个通用资源标志符(Uniform Resource Identifier, 简称"URI")进行定位. 对象分组: 复制代码 代码如下: ^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?12 3
-
php正则匹配文章中的远程图片地址并下载图片至本地
使用php的正则表达式来实现: $content = '这里是文章内容,这里插入一张图片测试 <img src="XXXXXXXXXXXXXXXXXXXX">'; $content = stripslashes ( $content ); $img_array = array (); // 匹配所有远程图片 preg_match_all ( "/(src|SRC)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|bmp|png
-
php匹配网址的正则 几乎可以匹配任何网址
比较简单的 $str = ''; $isMatched = preg_match('/^^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+$/', $str, $matches); var_dump($isMatched, $matches); 几乎可以匹配任何网址: ^((https?|ftp|news):\/\/)?([a-z]([a-z0-9\-]*[\..])+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int
-
php与javascript正则匹配中文的方法分析
本文实例讲述了php与javascript正则匹配中文的方法.分享给大家供大家参考,具体如下: php中正则匹配utf-8中文: (重点是:[\x{4e00}-\x{9fa5}]+) $str = "我们"; if (preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str,$arr)) { print("该字符串全部是中文"); echo '<pre>'; print_r($arr); } else {
-
PHP正则匹配图片并给图片加链接详解
正则: 复制代码 代码如下: $newstext=preg_replace(preg_replace('/(<img[^>]+src\s*=\s*"?([^>"\s]+)"?[^>]*>)/im', '<a href="$2″>$1</a>', $newstext); 解说: 1.preg_replace和str_replace的区别: str_replace只是纯字符替换,而preg_replace才是正则替换
-
php用正则表达式匹配中文实例详解
在php中汉字正则可能有些朋友觉得很简单,但是在使用时会发现在gbk编码与uft8编码可能会有点区别哦,下面小编来介绍一下.gbk编码下汉字正则 1.判断字符串是否全是汉字 复制代码 代码如下: <?php $str = '全部是汉字测试'; if (preg_match_all("/^([x81-xfe][x40-xfe])+$/", $str, $match)) { echo '全部是汉字'; } else { echo '不
-
PHP正则匹配中英文、数字及下划线的方法【用户名验证】 原创
本文实例讲述了PHP正则匹配中英文.数字及下划线的方法.分享给大家供大家参考,具体如下: 一.问题: 对于用户注册时的用户名要求由中英文.数字或下划线组成,不得含有其他字符. 二.解决方法: 针对输入字符进行中英文.数字及下划线的正则验证即可. 代码如下: $username='我们jb51.net@#--^&*'; $preg='/[\w\x{4e00}-\x{9fa5}]+/u'; //$preg='/[\x80-\xff_\w]+/u'; preg_match($preg,$usernam
-
关于php正则匹配汉字的方法介绍
php正则匹配汉字! /^[\x{4e00}-\x{9fa5}]+$/u 以上这个正则表达式就是困扰了很多php程序员的匹配汉字的正则表达式 大家可能会觉得很简单,实际上不同编码,不同程序语言,都有些细微的出入,稍不注意就得不到正确的结果. 下面是utf-8编码的例子:$str = "汉字";if (preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)) {print("该字符串全部是中文");} else {
-
正确的PHP匹配UTF-8中文的正则表达式
我以前一直用这个 复制代码 代码如下: preg_match('~[\x7f-\xff]+~is', $string, $tmp); 今天才发现,上面这个也会匹配到一些欧洲国家的字符 应该用下面这个,注意修正符 u 复制代码 代码如下: preg_match('~[\x{4e00}-\x{9fa5}]+~u', $string, $tmp);
-
正则匹配密码只能是数字和字母组合字符串功能【php与js实现】
本文实例讲述了正则匹配密码只能是数字和字母组合字符串功能.分享给大家供大家参考,具体如下: 密码要求: 1. 不能全部是数字 2. 不能全部是字母 3. 必须是数字和字母组合 4. 不包含特殊字符 5. 密码长度6-30位的字符串 /** * @desc get_pwd_strength()im:根据密码字符串判断密码结构 * @param (string)$mobile * return 返回:$msg */ function get_pwd_strength($pwd){ if (strle
-
PHP匹配连续的数字或字母的正则表达式
正则表达式的写法规则:"/规则需要写在2个斜杠中间/". (. :小数点)用于匹配除换行符之外的所有字符. (\s:反斜杠小写s)用于匹配单个空格符,包括tab键和换行符: (\S:反斜杠大写S)用于匹配除单个空格符之外的所有字符: (\d:反斜杠d)用于匹配从0到9的数字:也可以这样写:[0-9] (\w:反斜杠小写w)用于匹配字母,数字或下划线字符: (\W:反斜杠大写W)用于匹配所有与\w不匹配的字符: 元字符包括: +, *,? 元字符理解起来容易混淆,所以我在后面做了代码结果
随机推荐
- ascii码表(二进制 十进制 十六进制)详细介绍
- MySQL中slave监控的延迟情况分析
- Asp.NET 生成静态页面并分页的代码
- 使用 php4 加速 web 传输
- PHP数组 为文章加关键字连接 文章内容自动加链接
- c# SQLHelper(for winForm)实现代码
- Android app开发中Retrofit框架的初步上手使用
- 屏蔽PHP默认设置中的Notice警告的方法
- Bootstrap模态框禁用空白处点击关闭
- Shell命令行中特殊字符与其转义详解(去除特殊含义)
- VBS教程:函数-Space 函数
- tomcat在opensuse下开机自启失败的原因分析及解决方法
- c++中处理相关数学函数
- 浅析c++中new和delete的用法
- 详解 JAVA的回调机制CallBack
- Vue.js devtool插件安装后无法使用的解决办法
- 深入浅析JSONAPI在PHP中的应用
- Ajax登陆使用Spring Security缓存跳转到登陆前的链接
- 关于linux中系统输入输出的管理详解
- js作用域和作用域链及预解析