邮箱正则表达式php
① 求php 的正则表达式 大全
匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> 评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为 匹配首尾空白字符的正则表达式:^\s*|\s*$ 评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 评注:表单验证时很实用 匹配网址URL的正则表达式:[a-zA-z]+://[^\s]* 评注:网上流传的版本功能很有限,上面这个基本可以满足需求 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 评注:表单验证时很实用 匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7} 评注:匹配形式如 0511-4405222 或 021-87888822 匹配腾讯QQ号:[1-9][0-9]{4,} 评注:腾讯QQ号从10000开始 匹配中国邮政编码:[1-9]\d{5}(?!\d) 评注:中国邮政编码为6位数字 匹配身份证:\d{15}|\d{18} 评注:中国的身份证为15位或18位 匹配ip地址:\d+\.\d+\.\d+\.\d+ 评注:提取ip地址时有用 匹配特定数字: ^[1-9]\d*$ //匹配正整数 ^-[1-9]\d*$ //匹配负整数 ^-?[1-9]\d*$ //匹配整数 ^[1-9]\d*|0$ //匹配非负整数(正整数 + 0) ^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0) ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数 ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数 + 0) ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0) 评注:处理大量数据时有用,具体应用时注意修正 匹配特定字符串: ^[A-Za-z]+$ //匹配由26个英文字母组成的字符串 ^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串 ^[a-z]+$ //匹配由26个英文字母的小写组成的字符串 ^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串 ^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串 /http:\/\/(.*)\//i //匹配外部链接地址
满意请采纳
② php 邮箱正则表达式 ^\w+(.w+)*@\w+(.w+)+$ 大神帮忙解释一下,尤其是括号内的
这个应该写错了
里面2个点号(.)后面都应该有一个反斜杠(\)
^\w+(.\w+)*@\w+(.\w+)+$
\w+代表着1到多个文字字符(比如英文,中文)
③ 超常用的PHP正则表达式收集整理
以下就是对超常用的PHP正则表达式进行的收集整理,为了方便大家更快更好的掌握php正则表达式。
一、表单验证匹配
验证账号,字母开头,允许
5-16
字节,允许字母数字下划线:^[a-zA-Z][a-zA-Z0-9_]{4,15}$
验证账号,不能为空,不能有空格,只能是英文字母:^\S+[a-z
A-Z]$
验证账号,不能有空格,不能非数字:^\d+$
验证用户密码,以字母开头,长度在
6-18
之间:^[a-zA-Z]\w{5,17}$
验证是否含有
^%&',;=?$\
等字符:[^%&',;=?$\x22]+
匹配Email地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配腾讯QQ号:[1-9][0-9]{4,}
匹配日期,只能是
2004-10-22
格式:^\d{4}\-\d{1,2}-\d{1,2}$
匹配国内电话号码:^\d{3}-\d{8}|\d{4}-\d{7,8}$------------评注:匹配形式如010-12345678
或0571-12345678
或
0831-1234567
匹配中国邮政编码:^[1-9]\d{5}(?!\d)$
匹配身份证:\d{14}(\d{4}|(\d{3}[xX])|\d{1})------------评注:中国的身份证为15
位或18
位
不能为空且二十字节以上:^[\s|\S]{20,}$
二、字符匹配
匹配由
26
个英文字母组成的字符串:^[A-Za-z]+$
匹配由
26
个大写英文字母组成的字符串:^[A-Z]+$
匹配由
26
个小写英文字母组成的字符串:^[a-z]+$
匹配由数字和
26
个英文字母组成的字符串:^[A-Za-z0-9]+$
匹配由数字、26个英文字母或者下划线组成的字符串:^\w+$
匹配空行:\n[\s|
]*\r
匹配任何内容:[\s\S]*
匹配中文字符:[\x80-\xff]+
或者
[\xa1-\xff]+
只能输入汉字:^[\x80-\xff],{0,}$
匹配双字节字符(包括汉字在内):[^\x00-\xff]
三、匹配数字
只能输入数字:^[0-9]*$
只能输入n位的数字:^\d{n}$
只能输入至少n位数字:^\d{n,}$
只能输入m-n位的数字:^\d{m,n}$
匹配正整数:^[1-9]\d*$
匹配负整数:^-[1-9]\d*$
匹配整数:^-?[1-9]\d*$
匹配非负整数(正整数
+
0):^[1-9]\d*|0$
匹配非正整数(负整数
+
0):^-[1-9]\d*|0$
匹配正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$
匹配负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
匹配浮点数:^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
匹配非负浮点数(正浮点数
+
0):^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
匹配非正浮点数(负浮点数
+
0):^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
四、其他
匹配HTML标记的正则表达式(无法匹配嵌套标签):<(\S*?)[^>]*>.*?</\1>|<.*?
/>
匹配网址
URL
:[a-zA-z]+://[^\s]*
匹配
IP
地址:((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)
匹配完整域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
提示
上述正则表达式通常都加了
^
与
$
来限定字符的起始和结束,如果需要匹配的内容包括在字符串当中,可能需要考虑去掉
^
和
$
限定符。
以上正则表达式仅供参考,使用时请检验后再使用,希望通过这些超常用的PHP正则表达式
④ php正则表达式,去掉邮箱中间的数并返回新的邮箱地址应该怎么写
最简单的方法:
function change_email($email) {
$email= substr($email, 0, 11);
$email= $email."@txt.ice.com";
return $email;
}
⑤ PHP正则表达式如何检测现有的正确邮箱域名后缀
这个是IT群里的朋友!我不去群里了,在这里帮你把问题解决了吧!
其实严格说来,正则表达式只是一个模型匹配,所以直接使用模型匹配时我们有一个高通原理,也就是说匹配出来的内容是要大于你所需要的内容。就比此题来说,后边可以匹配任何一个合规则的内容,而不可能精确地直接是你想要的内容——这就是高通,如果非要匹配到你想要的内容,使用正则运算有时是非常不合适的!所以这里不建议你使用这方式,或者是部分使用这种方式的形式。
高通就是通过你不全是你想要的,但你想要的一定全在里边。
那么,为什么不考虑使用ajax的方式呢?后台自己设计一会数据库,@前半段使用正则表这式,扣后半段直接使用数据存储的内容,这样可以精确到任何一个你想要的。
因为这里你想要的与不想要的其实也很模糊,你也不知道ckk这个域名在以后是不会被启用!那么你可以使用数据库方式,由管理员自由添加!不用去修改那将来的表达式的!
但事实上很少人用这种方式——他们都在使用注册时邮箱认证的方式,也就是说,发到你邮箱里一封信,辅助你完成注册,这种情况虽然是高通,其他实他只是方便用户能输入正确,而不是要的确信数据,任何设计都要记着这句话——任何客户端的信息都是不可信的!就算用JS完成了正则,那么如果对方有意屏掉您的JS这十分容易的!所以你的正则根本不是用来验证,而是方便用户。
正是这种原因,高通的理由也是其存在的一个原因!就算使用了我说的数据库,利用ajax来检查,那么别人照样可以让你的ajax不工作,而且,不是服务器通过了,邮箱就一定有人注册的!所以从这方面上来讲,数据库的实现意义也不大!
根据js的特点,客户端的验证没有必要太这于麻烦,就算是服务端的验证,建议你的也只采用这种方式即可。没有使用数据库的必要的——这个代价与达到的效果是不成比例的!
说完了,其实等于我也不解决!
⑥ PHP常用正则表达式总结
PHP常用正则表达式总结一、校验数字的表达式数字:^[0-9]*$
匹配任意数量的数字(包括0个)。
n位的数字:^d{n}$
匹配恰好n位的数字。
至少n位的数字:^d{n,}$
匹配至少n位的数字。
m-n位的数字:^d{m,n}$
匹配m到n位的数字。
零和非零开头的数字:^(0|[1-9][0-9]*)$
匹配0或任意非零开头的数字。
非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
匹配非零开头的整数或带有一到两位小数的数字。
带1-2位小数的正数或负数:^(-)?d+(.d{1,2})?$
匹配可选负号的整数或带有一到两位小数的数字。
正数、负数、和小数:^(-|+)?d+(.d+)?$
匹配可选正负号的整数或小数。
有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
匹配整数或带有两位小数的正实数。
有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
匹配整数或带有一到三位小数的正实数。
非零的正整数:^[1-9]d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^+?[1-9][0-9]*$
匹配非零的正整数。
非零的负整数:^-[1-9]d*$ 或 ^-[1-9][0-9]*$
匹配非零的负整数。
非负整数:^d+$ 或 ^[1-9]d*|0$
匹配非负整数(包括0)。
非正整数:^-[1-9]d*|0$ 或 ^((-d+)|(0+))$
匹配非正整数(包括0和负数)。
汉字:^[u4e00-u9fa5]{0,}$
匹配任意数量的汉字。
英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
匹配由英文和数字组成的字符串,至少一个字符或4到40个字符。
长度为3-20的所有字符:^.{3,20}$
匹配任意字符组成的字符串,长度为3到20个字符。
由26个英文字母组成的字符串:^[A-Za-z]+$
匹配由26个英文字母组成的字符串。
由26个大写英文字母组成的字符串:^[A-Z]+$
匹配由26个大写英文字母组成的字符串。
由26个小写英文字母组成的字符串:^[a-z]+$
匹配由26个小写英文字母组成的字符串。
由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
匹配由数字和26个英文字母组成的字符串。
由数字、26个英文字母或者下划线组成的字符串:^w+$ 或 ^w{3,20}$
匹配由数字、26个英文字母或下划线组成的字符串,至少一个字符或3到20个字符。
中文、英文、数字包括下划线:^[u4E00-u9FA5A-Za-z0-9_]+$
匹配由中文、英文、数字或下划线组成的字符串。
中文、英文、数字但不包括下划线等符号:^[u4E00-u9FA5A-Za-z0-9]+$ 或 ^[u4E00-u9FA5A-Za-z0-9]{2,20}$
匹配由中文、英文、数字组成的字符串,至少两个字符或2到20个字符。
可以输入含有^%&',;=?$"等字符:[^%&',;=?$"]+
匹配不包含^%&',;=?$"等字符的字符串。
禁止输入含有~的字符:[^~"]+
匹配不包含~和"的字符串。
Email地址:^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
匹配标准的Email地址。
域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.?
匹配域名。
InternetURL:[a-zA-z]+://[^s]* 或 ^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$
匹配Internet URL。
手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])d{8}$
匹配中国大陆的手机号码。
电话号码:^((d{3,4}-)|d{3.4}-)?d{7,8}$
匹配多种格式的电话号码。
国内电话号码:d{3}-d{8}|d{4}-d{7}
匹配国内电话号码。
身份证号:
15或18位身份证:^d{15}|d{18}$
15位身份证:^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$
18位身份证:^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{4}$
短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配合法的帐号。
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]w{5,17}$
匹配合法的密码。
强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
匹配强密码。
日期格式:^d{4}-d{1,2}-d{1,2}
匹配日期格式(YYYY-MM-DD)。
一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$
匹配月份。
一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
匹配天数。
中文字符的正则表达式:`[u4e00-u
⑦ 求一条php做的正则表达式
PHP中的正则式使用
PHP被大量的应用于Web的后台CGI开发,通常是在用户数据数据之后得出某种结果,但是如果用户输入的数据不正确,就会出现问题,比如说某人的生日是”2月30日”!那应该怎么样来检验暑假是否正确呢? 在PHP中加入了正则表达式的支持,让我们可以十分方便的进行数据匹配。
2 什么是正则表达式:
简单的说,正则表达式是一种可以用于模式匹配和替换的强大工具。在几乎所有的基于UNIX/LINUX系统的软件工具中找到正则表达式的痕迹,例如:Perl或PHP脚本语言。此外,JavaScript这种客户端的脚本语言也提供了对正则表达式的支持,现在正则表达式已经成为了一个通用的概念和工具,被各类技术人员所广泛使用。
在某个Linux网站上面有这样的话:”如果你问一下Linux爱好者最喜欢什么,他可能会回答正则表达式;如果你问他最害怕什么,除了繁琐的安装配置外他肯定会说正则表达式。”
正如上面说的,正则表达式看起来非常复杂,让人害怕,大多数的PHP初学者都会跳过这里,继续下面的学习,但是PHP中的正则表达式有着可以利用模式匹配找到符合条件的字符串、判断字符串是否合乎条件或者用指定的字符串来替代符合条件的字符串等强大的功能,不学实在太可惜了……
3 正则表达式的基本语法:
一个正则表达式,分为三个部分:分隔符,表达式和修饰符。
分隔符可以是除了特殊字符以外的任何字符(比如”/ !”等等),常用的分隔符是”/”。表达式由一些特殊字符(特殊字符详见下面)和非特殊的字符串组成,比如”[a-z0-9_-]+@[a-z0-9_-.]+”可以匹配一个简单的电子邮件字符串。修饰符是用来开启或者关闭某种功能/模式。下面就是一个完整的正则表达式的例子:
/hello.+?hello/is
上面的正则表达式”/”就是分隔符,两个”/”之间的就是表达式,第二个”/”后面的字符串”is”就是修饰符。
在表达式中如果含有分隔符,那么就需要使用转义符号”",比如”/hello.+?/hello/is”。转义符号除了用于分隔符外还可以执行特殊字符,全部由字母构成的特殊字符都需要”"来转义,比如”d”代表全体数字。
4 正则表达式的特殊字符:
正则表达式中的特殊字符分为元字符、定位字符等等。
元字符是正则表达式中一类有特殊意义的字符,用来描述其前导字符(即元字符前面的字符)在被匹配的对象中出现的方式。元字符本身是一个个单一的字符,但是不同或者相同的元字符组合起来可以构成大的元字符。
元字符:
大括号:大括号用来精确指定匹配元字符出现的次数,例如”/pre{1,5}/”表示匹配的对象可以是”pre”、”pree”、”preeeee”这样在”pr”后面出现1个到5个”e”的字符串。或者”/pre{,5}/”代表pre出现0此到5次之间。
加号:”+”字符用来匹配元字符前的字符出现一次或者多次。例如”/ac+/”表示被匹配的对象可以是”act”、”account”、”acccc”等在”a”后面出现一个或者多个”c”的字符串。”+”相当于”{1,}”。
星号:”*”字符用来匹配元字符前的字符出现零次或者多次。例如”/ac*/”表示被匹配的对象可以是”app”、”acp”、”accp”等在”a”后面出现零个或者多个”c”的字符串。”*”相当于”{0,}”。
问号:”?”字符用来匹配元字符前的字符出现零次或者1次。例如”/ac?/”表示匹配的对象可以是”a”、”acp”、”acwp”这样在”a”后面出现零个或者1个”c”的字符串。”?”在正则表达式中还有一个非常重要的作用,即”贪婪模式”。
还有两个很重要的特殊字符就是”[ ]“。他们可以匹配”[]“之中出现过的字符,比如”/[az]/”可以匹配单个字符”a”或者”z”;如果把上面的表达式改成这样”/[a-z]/”,就可以匹配任何单个小写字母,比如”a”、”b”等等。
如果在”[]“中出现了”^”,代表本表达式不匹配”[]“内出现的字符,比如”/[^a-z]/”不匹配任何小写字母!并且正则表达式给出了几种”[]“的默认值:
[:alpha:]:匹配任何字母
[:alnum:]:匹配任何字母和数字
[:digit:]:匹配任何数字
[:space:]:匹配空格符
[:upper:]:匹配任何大写字母
[:lower:]:匹配任何小写字母
[:punct:]:匹配任何标点符号
[:xdigit:]:匹配任何16进制数字
另外下面这些特殊字符在转义符号”"转义后代表的含义如下:
s:匹配单个的空格符
S:用于匹配除单个空格符之外的所有字符。
d:用于匹配从0到9的数字,相当于”/[0-9]/”。
w:用于匹配字母,数字或下划线字符,相当于”/[a-zA-Z0-9_]/”。
W:用于匹配所有与w不匹配的字符,相当于”/[^a-zA-Z0-9_]/”。
D:用于匹配任何非10进制的数字字符。
.:用于匹配除换行符之外的所有字符,如果经过修饰符”s”的修饰,”.”可以代表任意字符。
利用上面的特殊字符可以很方便的表达一些比较繁琐的模式匹配。例如”/d0000/”利用上面的正则表达式可以匹配万以上,十万一下的整数字符串。
定位字符:
定位字符是正则表达式中又一类非常重要的字符,它的主要作用是用于对字符在匹配对象中的位置进行描述。
^:表示匹配的模式出现在匹配对象的开头(和在”[]“里面不同)
$:表示匹配的模式出现在匹配对象的末尾
空格:表示匹配的模式出现在开始和结尾的两个边界之一
“/^he/”:可以匹配以”he”字符开头的字符串,比如hello、height等等;
“/he$/”:可以匹配以”he”字符结尾的字符串即she等;
“/ he/”:空格开头,和^的作用一样,匹配以he开头的字符串;
“/he /”:空格结束,和$的作用一样,匹配以he结尾的字符串;
“/^he$/”:表示只和字符串”he”匹配。
括号:
正则表达式除了可以用户匹配,还可以用括号”()”来记录需要的信息,储存起来,给后面的表达式读取。比如:
/^([a-zA-Z0-9_-]+)@([a-zA-Z0-9_-]+)(.[a-zA-Z0-9_-])$/
就是记录邮件地址的用户名,和邮件地址的服务器地址(形式为[email protected]之类的),在后面如果想要读取记录下来的字符串,只是需要用”转义符+记录的次序”来读取。比如”1〃就相当于第一个”[a-zA-Z0-9_-]+”,”2〃相当于第二个([a-zA-Z0-9_-]+),”3〃就是第三个(.[a-zA-Z0-9_-])。但是在PHP中,”"是一个特殊的字符,需要转义,所以”"到了PHP的表达式中就应该写成”1〃。
其他特殊符号:
“|”:或符号”|”和PHP里面的或一样,不过是一个”|”,而不是PHP的两个”||”!意思就是可以是某个字符或者另一个字符串,比如”/abcd|dcba/”可能匹配”abcd”或者”dcba”。
5 贪婪模式:
前面在元字符中提到过”?”还有一个重要的作用,即”贪婪模式”,什么是
⑧ 超常用的PHP正则表达式收集整理
以下就是对超常用的PHP正则表达式进行的收集整理,为了方便大家更快更好的掌握php正则表达式。
:]*$!是对php中单引号的转义。或者还有更简单的!^/?[a-z0-9=:]*$!ii表示忽略大小写。模式分隔符就是为了区分表达式和像i这样的模式修饰符而设计的。
什么是正则表达式:简单的说,正则表达式是一种可以用于模式匹配和替换的强大工具。在几乎所有的基于UNIX/LINUX系统的软件工具中找到正则表达式的痕迹,例如:Perl或PHP脚本语言。
ThinkPHP的自动验证常用的正则一般我们见的比较多的是设置规则为require、email之类的,其实这些本身也是属于正则表达式验证方式,只是系统内置定义了一些常用的正则表达式而已。
关键地方是汉字的表示xa0-xff。下面是我写的例子程序,调试通过:?phpstr=汉字123456abcdef+-*/ABCDE!@#$%^&*()结尾。