代码如下 | 复制代码 |
<?php /** $A = 2; // 测试 // 输出 ?> |
匹配域名有以下的格式要求:
1、域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母。标号中除连字符(-)外不能使用其他的标点符号。
2、各级域名之间用实点(.)连接,三级域名的长度不能超过20个字符。
3、由多个标号组成的完整域名总共不超过255个字符。
所以匹配域名的正则要
1、由英文数字 和 “_”组成 [-a-z0-9]
2、每级要以“.”连接
3、三级不能域名长度不超过20 {1,20}
测试如下格式:
代码如下 | 复制代码 |
<?php $url = 'www.111cn.net'; $search = '/---正则N---/'; if(preg_match($search,$url)){ echo '匹配'; }else { echo '不匹配'; } ?> |
先从网上总结的几个常见的
正则1
b([a-z0-9]+(-[a-z0-9]+)*.)+[a-z]{2,}b
错误匹配:长度>60
正则2
代码如下 | 复制代码 |
^(([^-][a-z0-9A-Z-_]+.)*)[^-][a-z0-9A-Z-_]+(.[a-zA-Z]{2,4}){1,2}$ |
错误匹配:长度>60
错误匹配:www.te_st.com
正则3
代码如下 | 复制代码 |
(([wd-_]+.):?[^-_])+w{2,4} |
不匹配:www.111cn.net.cn
错误匹配:www.te_st.com
正则4
代码如下 | 复制代码 |
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.? |
暂无错误
正则5
代码如下 | 复制代码 |
(?<=.)([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?.)+[a-zA-Z]{2,6} |
不匹配二级域名
正则6
代码如下 | 复制代码 |
([a-z0-9][a-z0-9-]*?.(?:com|cn|net|org|gov|info|la|cc|co)(?:.(?:cn|jp))?)$ |
很多顶级域名不匹配
例
代码如下 | 复制代码 |
<?php /* |
最简单的验证手机号码
中国的手机都是以1开头的10位数字。
用到正则 ^1([0-9]{9})
代码如下 | 复制代码 |
<?php $mobile = '15858588585'; if(!preg_match('/^1([0-9]{9})/',$mobile)) exit('mobile phone error'); ?> |
^1首字符为1不解释
[0-9] 零到九的数字
{9} 重复10次,就是1加九位数字
上面就是不是手机号也可以通过难哦如19999999999 但这不是一个手机号啊
我们分析得到
移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
联通:130、131、132、152、155、156、185、186
电信:133、153、180、189、(1349卫通)
例2
代码如下 | 复制代码 |
function is_mobile($str){ |
查找html中有id属性的标签,说具体点就是尖括号<>中还有id=""的html标签。如:
字符串<div style="float:left" id="ab">123213</div><div class="a123">21314423</div>
不匹配<div class="a123">……</div>的内容
写这个例子可以用
代码如下 | 复制代码 |
<[a-zA-Z0-9][^>]+?id=[^>]+?>.*?</div> |
匹配
上一个php例子:
代码如下 | 复制代码 |
<?php $str = '<div style="float:left" id="ab">123213</div><div class="a123">213123</div>'; $search = '#<[a-zA-Z0-9][^>]+?id=[^>]+?>.*?</div>#is'; preg_match_all($search,$str,$r); echo '<pre>'; print_r($r); echo '</pre>'; ?> |
本例子输出
代码如下 | 复制代码 |
Array ) |
对于有重复的5到10位数字可以使用d{5,10} 这样的正则
无重复的5到10位数字我考虑了一下还不会,最然只好查网上。
有一个版本还不错,反正RegexBuddy测试通过了。
代码如下 | 复制代码 |
^(?!d*?(d)d*?1)d{5,10}$ |
对于(?!………(……)………1)这样的形式我还没有研究透,有时间我真要细细研究。
上一个php的例子:
代码如下 | 复制代码 |
<?php echo '匹配无重复的5到10位数字<br />'; |