php正则匹配a标签的例子
方法一
代码如下 | 复制代码 |
$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标签里面的链接
正则表达式 |
<(\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/> |
采用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] |
一,下例可以去除额外空白
代码如下 | 复制代码 |
<?php |
二,替换换行符
//php 有三种方法来解决
代码如下 | 复制代码 |
//1、使用str_replace 来替换换行 //2、使用正则替换 //3、使用php定义好的变量 (建议使用) |
代码如下:
代码如下 | 复制代码 |
/* * 获得用户操作系统的换行符,n * @access public * @return string */ function get_crlf() { if (stristr($_SERVER['HTTP_USER_AGENT'], 'Win')) { $the_crlf = 'rn'; } elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Mac')) { $the_crlf = 'r'; // for old MAC OS } else { $the_crlf = 'n';//权重大一点 www.111cn.net } return $the_crlf; } |
注意:在前台页面显示的时候,用nl2br使换行变成<br>
三,替换回车
代码如下 | 复制代码 |
<?php |
一聚教程小编提醒你,有时我们还需要注意像textarea中的回车换行并不是/r/n之类的而是需要chr(32),chr(13)这样才可以替换的哦。
相关文章
- 有一个项目要获取页面中所有img标签中的图片地址,这里我们使用到了preg_match_all正则函数,然后看我下面的一些参数即可实现了。 例 代码如下 复制代码 ...2016-11-25
- 安装curl扩展支持https是非常的重要现在许多的网站都使用了https了,下面我们来看一篇关于PHP安装curl扩展支持https例子吧。 问题: 线上运行的lamp服务器,默认yu...2016-11-25
- 这篇文章主要给大家介绍了一个关于JS正则匹配的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-13
- floor会产生小数了如果我们不希望有小数我们是可以去除小数点的了,下面一聚教程小编来为各位介绍php使用floor去掉小数点的例子,希望对各位有帮助。 float floor (...2016-11-25
- 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配,因为我想学完之后写个语法高亮练手,所以用js代码当作例子...2021-05-07
- 昨天在《js 正则学习小记之匹配字符串字面量》谈到 /"(?:\\.|[^"])*"/ 是个不错的表达式,因为可以满足我们的要求,所以这个表达式可用,但不一定是最好的...2021-05-07
- 最近在开发一个项目,其中有需求要求我们把一段html转换为一般文本返回,使用正则表达式是明智的选择,下面小编给介绍下C#使用正则表达式过滤html标签,需要的朋友参考下...2020-06-25
- 在 OpenResty 中,同时存在两套正则表达式规范:Lua 语言的规范和 Nginx 的规范,下面这篇文章主要给大家介绍了关于OpenResty中正则模式匹配的2种方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。...2020-06-30
- 这篇文章主要介绍JS正则RegExp对象,正则表达式是描述字符模式的对象,用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。下面就来看具体详情,需要的朋友可以参考一下...2021-10-21
- 这篇文章主要介绍了JS基于正则截取替换特定字符之间字符串操作方法,结合具体实例形式分析了JS基于正则实现针对特殊字符、数字等字符串类型的截取操作相关技巧,需要的朋友可以参考下...2017-02-08
- 下面我们来看一篇关于纯Css实现下拉菜单的简单例子,希望这篇文章能够给各位同学带来帮助,具体步骤如下. 大家可能会经常用到hover这属性,用hover实现鼠标经过的颜...2017-01-22
- 其实我很少用这个,所以之前一直没注意这个问题,自从落叶那厮写了个变态的测试我才去看了下这东西...2021-05-07
- 替换指定字符的方法有很多,在本文为大家详细介绍下,JS利用正则配合replace是如何做到的,喜欢的朋友可以参考下...2021-05-07
- 这篇文章主要介绍了Spring-AOP 静态正则表达式方法如何匹配切面的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-19
- 在php中日期对比用得比较多了,还有一个日期加减也用到不少,下面我拿两个例子来给大家介绍在php中日期操作方法吧,希望文章能给你带来帮助 功能需求 文章发布时段操...2016-11-25
- 本例子不是读取Excel或生成新的Excel,而是读取现有的Excel文件,然后修改Excel中的数据,就像修改mysql中数据一样的哦。 代码如下 ...2016-11-25
- php教程正则中文表达式 $str = "abc一二三cde"; echo preg_replace('/[^x4e00-x9fa5]/i'," ",$str); $str = "php编程"; if (preg_match("/^[x4e00-x9fa5]+$/u",$s...2016-11-25
- 正则提取图片中的地址我们介绍过很多的相关文章了,下面再来给各位介绍一个可以提取内容中第一张图片的例子,希望对各位有帮助。 代码如下 复制代码 ...2016-11-25
- 匹配email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 匹配网址url的正则表达式:[a-za-z]+://[^s]* 下面看一实例 <body onload="f.a.select();"> <?php...2016-11-25
- 最近看到博客留言的头像有点别扭,因为游客的头像都是同一个头像,看着不是很舒服。虽然现在绝大多数的主题集成了Gavatar头像功能,先不说gavatar被墙的问题,我自己现在都没...2016-11-25