php正则符号
㈠ php正则表达,汉字大小写字母数字下划线以及@符号
邮箱的正则表达式为:/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$/,其他的一楼已经回答得很完备了
㈡ PHP常用正则表达式汇总
1、w就是匹配字母或数字或下划线或汉字,+则与*差不多,区别是+包括重复0次,而*就可以。=就ushi匹配=号两个斜杠则表示正则表达式的分界。
2、正则表达式的限定符有:ThinkPHP的自动验证机制是为了进行表单数据验证,验证可以支持function、callback、confirm、equal、unique和regex,这里要讲的是使用正则表达式进行验证。特殊字符许多元字符要求在试图匹配它们时特别对待。
3、^/?[a-zA-Z0-9=:]*$!是对php中单引号的转义。或者还有更简单的!^/?[a-z0-9=:]*$!ii表示忽略大小写。模式分隔符就是为了区分表达式和像i这样的模式修饰符而设计的。
㈢ php 时间正则式的表示
最简单的正则 如 : \d{4}-\d{2}-\d{2}
但是实际情况却不是那么简单,,要考虑,有效性和闰年等问题.....
对于日期的有效范围,不同的应用场景会有所不同。MSDN中定义的DateTime对象的有效范围是:0001-01-01 00:00:00到9999-12-31 23:59:59。
UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z。
先考虑与年份无关的前三条规则,年份可统一写作
(?!0000)[0-9]{4}
下面仅考虑月和日的正则
1. 包括平年在内的所有年份的月份都包含1-28日
(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])
2. 包括平年在内的所有年份除2月外都包含29和30日
(0[13-9]|1[0-2])-(29|30)
3. 包括平年在内的所有年份1、3、5、7、8、10、12月都包含31日
(0[13578]|1[02])-31)
合起来就是除闰年的2月29日外的其它所有日期
(?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)
接下来考虑闰年的实现
1 : 四年一闰
([0-9]{2}(0[48]|[2468][048]|[13579][26])
2 : 百年不闰,四百年再闰
(0[48]|[2468][048]|[13579][26])00
3 : 合起来就是所有闰年的2月29日
([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)
四条规则都已实现,且互相间没有影响,合起来就是所有符合DateTime范围的日期的正则
^((?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$
考虑到这个正则表达式仅仅是用作验证,所以捕获组没有意义,只会占用资源,影响匹配效率,所以可以使用非捕获组来进行优化。
^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$
㈣ php 正则表达式 只能包含字母和数字
式子:/^[a-zA-Z0-9]+$/u
释义:
(1)“/”:正则表达式的定义,固定的书写形式;
(2)“^”:表示开始;
(3)“[]”:表示一个字符组,匹配包含的任何字符。例如,“[ab]”匹配“plain”中的“a”;
(4)“a-z”:与小写字母a-z匹配的字母范围;
(5)“A-Z”:表示与大写字母A-Z匹配的字母范围;
(6)“0-9”:匹配范围为0-9的数字;
(7)“+”:表示匹配数为一个或多个;
(8)“$”:匹配输入行的结尾。如果设置了RegExp对象的Multiline属性,则$也匹配“ ”或“ ”之前的位置;
(9)“u”:最后一个u是模式修饰符,严格来说,它可以是预定义的常数。表示使用unicode进行匹配。
(4)php正则符号扩展阅读:
其它正则表达式符号的含义:
(1)“*”:与上一个子表达式匹配任意次。例如,zo*匹配“z”以及“zo”和“zoo”。*等效于{0,};
(2)“?”:匹配上一个子表达式零或一次。例如,“做(es)?”匹配“do”或“does”。?等效于{0,1};
(3)“{n}”:n是一个非负整数。匹配被确定n次。例如,“o{2}”不能与“Bob”中的“o”匹配,但是可以与“food”中的两个o匹配;
(4)“{n,}”:n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但是可以匹配“foooood”中的所有o。“o{1,}”等效于“o+”。“o{0,}”等效于“o*”;
(5)“ {n,m}”:m和n是非负整数,其中n <= m。 至少匹配n次,最多匹配m次。 例如,“ o {1,3}”将匹配“ fooooood”中的前三个o作为一个组,最后三个o作为一个组。 “ o {0,1}”等效于“ o?”。 请注意,逗号和两个数字之间不能有空格。