首页 > php代码 > php 常见的正则匹配表达式学习笔记

php 常见的正则匹配表达式学习笔记

在php中常用的正则表达式包括了如电话号,邮箱,用户名,手机号,邮箱,密码,QQ号,身份证号码,空格,字母,数字等等这些正则表达试代码,下面我来整理一下。

参考N+1个正则总结:

常见的正则匹配:

((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}[X0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))

匹配腾讯QQ号:[1-9][0-9]{4,}注:腾讯QQ号从10000开始

价格:/(^[-+]?[1-9]d*(.d{1,2})?$)|(^[-+]?[0]{1}(.d{1,2})?$)/

验证用户密码:"^[a-zA-Z]w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。

中国邮政编码:[1-9]{1}(d+){5}

中国手机号码:(86)*0*13d{9}

掩码:

/^(254|252|248|240|224|192|128|0).0.0.0$|^(255.(254|252|248|240|224|192|128|0).0.0)$|^(255.255.(254|252|248|240|224|192|128|0).0)$|^(255.255.255.(254|252|248|240|224|192|128|0|255))$/

中国电话号码(包括移动和固定电话):((d{3,4})|d{3,4}-|s)?d{7,14}

正则表达式 "((d{3,4})|d{3,4}-)?d{7,8}(-d{3})*"(匹配形式如:0511-4405222 或者021-87888822 或者 021-44055520-555 或者 (0511)4405222)

中国身份证号码:

((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}[X0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))

匹配空格/空行:

匹配空行的正则表达式:n[s| ]*r

匹配首尾空格的正则表达式:(^s*)|(s*$)

匹配中文字符的正则表达式: [u4e00-u9fa5]

匹配数字:

只能输入数字:"^[0-9]*$"

整数或者小数:^[0-9]+.{0,1}[0-9]{0,2}$

只能输入至少n位的数字:"^d{n,}$"。

只能输入m~n位的数字:。"^d{m,n}$"

只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"

只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"

只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"

只能输入非零的正整数:"^+?[1-9][0-9]*$"

只能输入非零的负整数:"^-[1-9][]0-9"*$

只能输入长度为3的字符:"^.{3}$"


匹配字母:

只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"

只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"

只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"

只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"

只能输入由数字、26个英文字母或者下划线组成的字符串:"^w+$"

验证是否含有^%&',;=?$"等字符:"[^%&',;=?$x22]+"

下面附一些自己的正则表达式应用

<?php
function pregTP($test) {
    /**
     电话号码匹配
     电话号码规则:
     区号:3到5位,大部分都是四位,北京(010)和上海市(021)三位,西藏有部分五位,可以包裹在括号内也可以没有
     如果有区号由括号包裹,则在区号和号码之间可以有0到1个空格,如果区号没有由括号包裹,则区号和号码之间可以有两位长度的 或者-
     号码:7到8位的数字
     例如:(010) 12345678  或者 (010)12345678 或者 010  12345678 或者 010--12345678
     */
    $rule = '/^((((010)|(021)|(0d{3,4})))( ?)([0-9]{7,8}))|((010|021|0d{3,4}))([- ]{1,2})([0-9]{7,8})$/A';
    preg_match($rule, $test, $result);
    return $result;
}
function pregURL($test) {
    /**
     匹配url
     url规则:
     例
     协议://域名(www/tieba/baike...).名称.后缀/文件路径/文件名
     http://www.phprm.com
     协议://域名(www/tieba/baike...).名称.后缀/文件路径/文件名?参数
     www.www.phprm.com
     协议://域名(www/tieba/baike...).名称.后缀/文件路径/文件名/参数
     http://www.phprm.com
     协议:可有可无,由大小写字母组成;不写协议则不应存在://,否则必须存在://
     域名:必须存在,由大小写字母组成
     名称:必须存在,字母数字汉字
     后缀:必须存在,大小写字母和.组成
     文件路径:可有可无,由大小写字母和数字组成
     文件名:可有可无,由大小写字母和数字组成
     参数:可有可无,存在则必须由?开头,即存在?开头就必须有相应的参数信息
     */
    $rule = '/^(([a-zA-Z]+)(://))?([a-zA-Z]+).(w+).([w.]+)(/([w]+)/?)*(/[a-zA-Z0-9]+.(w+))*(/([w]+)/?)*(?(w+=?[w]*))*((&?w+=?[w]*))*$/';
    preg_match($rule, $test, $result);
    return $result;
}
function pregPOS($test) {
    /**
     匹配邮编
     规则:六位数字,第一位不能为0
     */
    $rule = '/^[1-9]d{5}$/';
    preg_match($rule, $test, $result);
    return $result;
}
function pregCh($test) {
    //utf8下匹配中文
    $rule = '/([x{4e00}-x{9fa5}]){1}/u';
    preg_match_all($rule, $test, $result);
    return $result;
}
function pregTI($test) {
    /**
     匹配时间
     规则:
     形式可以为:
     年-月-日 小时:分钟:秒
     年-月-日 小时:分钟
     年-月-日
     年:1或2开头的四位数
     月:1位1到9的数;0或1开头的两位数,0开头的时候个位数是1到9的数,1开头的时候个位数是1到2的数
     日:1位1到9的数;0或1或2或3开头的两位数,0开头的时候个位数是1到9的数,1或2开头的时候个位数是0到9的数,3开头的时候个位数是0或1
     小时:0到9的一位数;0或1开头的两位数,个位是0到9;2开头的两位数,个位是0-3
     分钟:0到9的一位数;0到5开头的两位数,个位是0到9;
     分钟:0到9的一位数;0到5开头的两位数,各位是0到9
     */
    $rule = '/^(([1-2][0-9]{3}-)((([1-9])|(0[1-9])|(1[0-2]))-)((([1-9])|(0[1-9])|([1-2][0-9])|(3[0-1]))))( ((([0-9])|(([0-1][0-9])|(2[0-3]))):(([0-9])|([0-5][0-9]))(:(([0-9])|([0-5][0-9])))?))?$/';
    preg_match($rule, $test, $result);
    return $result;
}
function pregIP($test) {
    /**
     匹配ip
     规则:
     **1.**2.**3.**4
     **1可以是一位的 1-9,两位的01-99,三位的001-255
     **2和**3可以是一位的0-9,两位的00-99,三位的000-255
     **4可以是一位的 1-9,两位的01-99,三位的001-255
     四个参数必须存在
     */
    $rule = '/^((([1-9])|((0[1-9])|([1-9][0-9]))|((00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5])))).)((([0-9]{1,2})|(([0-1][0-9]{2})|(2[0-4][0-9])|(25[0-5]))).){2}(([1-9])|((0[1-9])|([1-9][0-9]))|(00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5])))$/';
    preg_match($rule, $test, $result);
    return $result;
}
?>


文章链接:http://www.phprm.com/code/55026.html

随便收藏,请保留本文地址!

标签:正则表达式

相关文章

发表留言