php正则匹配html标签的程序代码
正则表达式 |
<(\S*?) [^>]*>.*?</\1>|<.*? />
|
---|---|
匹配 | <html>hello</html>|<a>abcd</a> |
不匹配 | abc|123|<html>ddd |
正则表达式 |
^[^<>`~!/@\#}$%:;)(_^{&*=|'+]+$
|
---|---|
匹配 | This is a test |
不匹配 | <href = | <br> | That's it |
正则表达式 |
<!--.*?-->
|
---|---|
匹配 | <!-- <h1>this text has been removed</h1> --> | <!-- yada --> |
不匹配 | <h1>this text has not been removed</h1> |
正则表达式 |
(\[(\w+)\s*(([\w]*)=('|")?([a-zA-Z0-9|:|\/|=|-|.|\?|&]*)(\5)?)*\])([a-zA-Z0-9|:|\/|=|-|.|\?|&|\s]+)(\[\/\2\])
|
---|---|
匹配 | [link url="http://www.domain.com/file.extension?getvar=value&secondvar=value"]Link[/li |
不匹配 | [a]whatever[/b] | [a var1=something var2=somethingelse]whatever[/a] | [a]whatever[a] |
正则表达式 |
href=[\"\'](http:\/\/|\.\/|\/)?\w+(\.\w+)*(\/\w+(\.\w+)?)*(\/|\?\w*=\w*(&\w*=\w*)*)?[\"\']
|
---|---|
匹配 | href="www.yahoo.com" | href="http://localhost/blah/" | href="eek" |
不匹配 | href="" | href=eek | href="bad example" |
正则表达式 |
"([^"](?:\\.|[^\\"]*)*)"
|
---|---|
匹配 | "This is a \"string\"." |
不匹配 | "This is a \"string\". |
正则表达式 |
(?i:on(blur|c(hange|lick)|dblclick|focus|keypress|(key|mouse)(down|up)|(un)?load|mouse(move|o(ut|ver))|reset|s(elect|ubmit)))
|
||
---|---|---|---|
匹配 |
|
||
不匹配 | click | onandon | mickeymouse |
正则表达式 |
(?s)/\*.*\*/
|
---|---|
匹配 | /* .................... */ | /* imagine lots of lines here */ |
不匹配 | */ malformed opening tag */ | /* malformed closing tag /* |
正则表达式 |
<(\S*?) [^>]*>.*?</\1>|<.*? />
|
---|---|
匹配 | <html>hello</html>|<a>abcd</a> |
不匹配 | abc|123|<html>ddd |
正则表达式 |
\xA9
|
---|---|
匹配 | © |
不匹配 | anything |
正则表达式 |
src[^>]*[^/].(?:jpg|bmp|gif)(?:\"|\')
|
---|---|
匹配 | src="../images/image.jpg" | src="http://domain.com/images/image.jpg" | src='d:\w |
不匹配 | src="../images/image.tif" | src="cid:value" |
正则表达式 |
/\*[\d\D]*?\*/
|
---|---|
匹配 | /* my comment */ | /* my multiline comment */ | /* my nested comment */ |
不匹配 | */ anything here /* | anything between 2 seperate comments | \* *\ |
正则表达式 |
<[a-zA-Z]+(\s+[a-zA-Z]+\s*=\s*("([^"]*)"|'([^']*)'))*\s*/>
|
---|---|
匹配 | <img src="test.gif"/> |
不匹配 | <img src="test.gif"> | <img src="test.gif"a/> |
例子
代码如下 | 复制代码 |
$preg = "/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/i"; preg_match_all($preg,$str,$res); |
这下子,管用多了,不管怎样的代码结构,都能顺利的匹配出图片的路径。
例子
代码如下 | 复制代码 |
$str='<p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_4.jpg" alt=""/></p><p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_3.jpg" alt=""/></p><p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_1.jpg" alt=""/></p>'; |
最后总结一个下载远程图片地址
代码如下 | 复制代码 |
/** |
方法一
代码如下 | 复制代码 |
$a ='<a href="www.111cn.net">百度</a>谷哥<a href="www.111cn.net">谷歌</a><a href="www.111cn.net">雅虎</a>'; 得出结果 Array ( [0] => Array ( [0] => <a href="www.111cn.net">百度</a> [1] => <a href="www.111cn.net">谷歌</a> [2] => <a href="www.111cn.net">雅虎</a> )
) |
方法二
示例如下:
代码如下 | 复制代码 |
$str1 = '<a href=http://www.111cn.net>test</a>'; $str2 = '<a href='http://www.111cn.net'>test</a>'; $str3 = '<a href = "javasccript: href ('test');" target = "_blank" />test</a>'; $regex = '/hrefs*=s*(?:"([^"]*)"|'([^']*)'|([^"'>s]+))/'; preg_match($regex, $str1, $matches); print_r($matches); preg_match($regex, $str2, $matches); print_r($matches); preg_match($regex, $str3, $matches); print_r($matches); 匹配结果: Array ( [0] => href=http://www.111cn.net [1] => [2] => [3] => http://www.111cn.net ) Array ( [0] => href='http://www.111cn.net' [1] => [2] => http://www.111cn.net ) Array ( [0] => href = "javasccript: href ('test');" [1] => javasccript: href ('test'); ) |
/href\s*=\s*(?:"([^"]*)"|\'([^\']*)\'|([^"\'>\s]+))/
思路很巧妙,即:
分两步,先区配a标签,然后再区配a标签里面的链接
采用php的正则删除中文
代码如下 | 复制代码 |
/*转换为UTF8 再处理*/ $a = mb_convert_encoding($a, 'UTF-8', 'GB2312'); $a = mb_convert_encoding($a, 'GB2312', 'UTF-8'); |
例子
代码如下 | 复制代码 |
|
简单说明下
x{4e00}-x{9fff} 这个是中文区间(各种文字都有unicode码区间)
/u 表示采用unicode码 进行正则判断
[] 正则标准括号,表示范围[0-3]表示 0,1,2,3, 0到3的意思
一般情况下用户名我们只能使用数字字母之类的但有时可能可以有中文,数字之类的,下面本文章总结了一些利用正则来验证用户名的例子。例子,字母、数字和汉字
代码如下 | 复制代码 |
if(preg_match("/[ '.,:;*?~`!@#$%^&+=)(<>{}]|]|[|/|\|"||/",$user)){ |
例子,全字母
代码如下 | 复制代码 |
<?php if (mb_ereg("^[w-.]{1,32}$", $str)) { ?> |
附一些常用正则
只能以数字或字母开头和结尾 用户名长度为4~18个字符
代码如下 | 复制代码 |
^[a-za-z0-9]{1}[a-za-z0-9|-|_]{2-16}[a-za-z0-9]{1}$ |
用户名为大写字母小写字母或下划线,并以字母开头,长度为6-20
代码如下 | 复制代码 |
^[a-za-z][wd_]{5,19} |
用户名:包括英文小写、汉字、数字、下划线,不能全部是数字,下划线不能在末尾
代码如下 | 复制代码 |
/^[a-z0-9_u4e00-u9fa5]+[^_]$/g utf-8下 preg_match("/^[a-z0-9_x80-xff]+[^_]$/g",$a); gbk下: preg_match("/^[a-z0-9_".chr(0xa1)."-".chr(0xff)."]+[^_]$/",$a) |
可有中文的用户名验证
代码如下 | 复制代码 |
[a-za-z0-9][u4e00-u9fa5] |
相关文章
- 这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
- 本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
- 有一个项目要获取页面中所有img标签中的图片地址,这里我们使用到了preg_match_all正则函数,然后看我下面的一些参数即可实现了。 例 代码如下 复制代码 ...2016-11-25
- 本文通过两个示例讲解了一下Process类调用外部应用程序的基本用法,并简单讲解了StartInfo属性,有需要的朋友可以参考一下。...2020-06-25
- 这篇文章主要介绍了微信小程序 页面传值详解的相关资料,需要的朋友可以参考下...2017-03-13
- 大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
- 这篇文章主要介绍了uniapp微信小程序:key失效的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-20
- 本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
将c#编写的程序打包成应用程序的实现步骤分享(安装,卸载) 图文
时常会写用c#一些程序,但如何将他们和photoshop一样的大型软件打成一个压缩包,以便于发布....2020-06-25- 这篇文章主要为大家详细介绍了微信小程序自定义tabbar组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-03-14
- 这篇文章主要介绍了微信小程序 网络请求(GET请求)详解的相关资料,需要的朋友可以参考下...2016-11-22
- 这篇文章主要给大家介绍了关于微信小程序如何获取图片宽度与高度的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
- 这篇文章主要介绍了微信小程序 二维码生成工具 weapp-qrcode详解,教大家如何在项目中引入weapp-qrcode.js文件,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下...2021-10-23
- 这篇文章主要介绍了Python爬取微信小程序通用方法代码实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-29
- 这篇文章主要介绍了微信小程序(应用号)开发新闻客户端实例的相关资料,需要的朋友可以参考下...2016-10-25
- 这篇文章主要介绍了微信小程序手势操作之单触摸点与多触摸点的相关资料,需要的朋友可以参考下...2017-03-13
- 这篇文章主要介绍了微信小程序 页面跳转传递值几种方法详解的相关资料,需要的朋友可以参考下...2017-01-16
- 本文主要介绍了手把手教你uniapp和小程序分包,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-02
- 这篇文章主要为大家详细介绍了微信小程序实现点击导航条切换页面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-11-19
- 这篇文章主要为大家详细介绍了微信小程序实现canvas分享朋友圈海报,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-21