8个常用的正则表达式
2017-01-17 17:30
375 查看
本文是博主从tutsplus 看到 的一篇文章,对于新手入门来说,还是非常棒的博文,就整理一下。八张图带你入门正则表达式。
原博连接:https://code.tutsplus.com/tutorials/8-regular-expressions-you-should-know–net-6149
正则表达式基础语法实例详解:http://blog.csdn.net/shuai_wy/article/details/54340834
常用正则表达式: http://c.biancheng.net/cpp/html/1433.html
前四条都比较简单(若有问题,可以先去看一下基础语法),重点说一下后面的四个正则表达式,后面的正则中有我写的优化实例,都是我多次运行验证过的,大家可以参考。
note:一下的例子呐,都是以单个匹配为实例的,如果大家想要匹配出一段文本中的字段,注意请去除^(以什么开始) 和 $(以什么结束)
实例:
运行结果:
注意:
正则表达式,我直接使用了原博中提供的表达式。
如果你要匹配 一个html标签,比如:
运行结果(讲解):
原博连接:https://code.tutsplus.com/tutorials/8-regular-expressions-you-should-know–net-6149
正则表达式基础语法实例详解:http://blog.csdn.net/shuai_wy/article/details/54340834
常用正则表达式: http://c.biancheng.net/cpp/html/1433.html
前四条都比较简单(若有问题,可以先去看一下基础语法),重点说一下后面的四个正则表达式,后面的正则中有我写的优化实例,都是我多次运行验证过的,大家可以参考。
note:一下的例子呐,都是以单个匹配为实例的,如果大家想要匹配出一段文本中的字段,注意请去除^(以什么开始) 和 $(以什么结束)
1、匹配用户名
/^[a-z0-9_-]{3,16}$/
2、匹配密码
/^[a-z0-9_-]{6,18}$/
3、匹配十六进制
/^#?([a-f0-9]{6}|[a-f0-9]{3})$/
4、匹配Slug
我也不知道,这是个啥,比较简单,匹配了小写字母、数字、和连接符/^[a-z0-9-]+$/
5、匹配Email地址
/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
6、匹配URL
/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
实例:
<?php $str = "http://www.fang.com/ask/search.html?Title=regex&author=wys"; $reg = "/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w\.-]*)(\?\w*=.*)?/"; //优化以后的正则,功能更加强大。 if (preg_match_all($reg,$str,$arr,2)) { echo "<pre>"; var_dump($arr); echo "</pre>"; }
运行结果:
array(1) { [0]=> array(6) { [0]=> string(59) "http://www.baidu.com/ask/search.html?Title=regex&author=wys" [1]=> string(7) "http://" //https?匹配协议 [2]=> string(9) "www.baidu" // ([\da-z\.-]+) 匹配网址 [3]=> string(3) "com" //匹配顶级域名 ([a-z\.]{2,6}) [4]=> string(16) "/ask/search.html" //匹配路径 ([\/\w\.-]*) [5]=> string(23) "?Title=regex&author=wys" // 匹配参数 (\?\w*=.*)? }
7、匹配IP地址
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
8、HTML标签
/^<([a-z]+)([^<]+)*(?:>(.*)<\/\\1>|\s+\/>)$/
注意:
正则表达式,我直接使用了原博中提供的表达式。
如果你要匹配 一个html标签,比如:
<hmtl>hello wys</html>,自然是没有问题,但是如果你要匹配一段文本中的html标签的话,则需要 去除 ^(已什么开始),$(以什么结束)。
$str = "<a href='www.baidu.com'>PHP</a>C#,精神病人思路广  <span></span>   <a href=''/>  </br> 房天下<br>国际网组"; //例如匹配改字符串中的html标签 $reg = "/<([a-z]+)([^<]+)*(?:>(.*)<\/\\1>|\s+\/>)/"; $reg1 = "/<(\S*?)[^>]*>.*?<\/\\1>/";//此表达式也可 if (preg_match_all($reg,$str,$arr,2)){ echo "<pre>"; var_dump($arr); echo "</pre>"; }
运行结果(讲解):
<pre> array(2) { [0]=> array(4) { [0]=> string(31) "<a href='www.baidu.com'>PHP</a>" //表达式完整匹配结果 [1]=> string(1) "a" // [a-z]+ 匹配了标签名 [2]=> string(21) " href='www.baidu.com'" // ([^<]+)* 匹配了多个标签属性 [3]=> string(3) "PHP" //(.*) 匹配了标签内容,(?:>(.*)<\/\\1>|\s+\/>)中,?: 取消了子模式,故外层的匹配未显示,对应的匹配内容应为: >PHP</a> } [1]=> array(4) { [0]=> string(13) "<span></span>" [1]=> string(4) "span" // [a-z]+ [2]=> string(0) "" // ([^<]+)* [3]=> string(0) "" //(.*) } }
相关文章推荐
- 超常用的PHP正则表达式收集整理
- 一些常用的正则表达式
- 常用 正则表达式 笔记
- Java常用的正则表达式验证
- 常用正则表达式
- Java中一些常用的正则表达式
- 常用正则表达式大全
- 只能输入正整数 已经常用的正则表达式
- PHP常用正则表达式汇总
- 验证表单元素常用的正则表达式
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- Delphi 正则表达式语法(4): 常用转义字符与 .
- 常用的正则表达式
- JavaScript 常用正则表达式
- 常用正则表达式
- 正则表达式 常用
- 最常用的15个JS正则表达式(前端表单验证)
- php下常用表单验证的正则表达式
- 常用的正则表达式及符号诠释
- Java中的17种常用正则表达式归纳