一号优惠经验分享网
51福利网的各种薅羊毛福利经验笔记

常用的正则表达式大全(数字、字符、固定格式)

1.数字相关的正则表达式

  • 数字:^[0-9]*$
  • n位定长的数字:^\d{n}$
  • m-n位之间的数字:^\d{m,n}$
  • 零和非零开头的数字:^(0|[1-9][0-9]*)$
  • 非零开头的最多带两位小数的数字:^([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})?$
  • 正整数:^\d+$ 或 ^[1-9]\d*|0$
  • 负整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
  • 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
  • 负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
  • 浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

2.字符相关的正则表达式

51福利网
  • 汉字:^[\u4e00-\u9fa5]{0,}$
  • 长度为3-20的所有字符:^.{3,20}$
  • 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
  • 由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$
  • 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
  • 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
  • 帐号是否合法(字母开头,允许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}$

3.固定格式约定俗成的正则表达式

  • Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
  • 网站域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
  • URL网址:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
  • 手机号码:^(13[0-9]|17[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}$
  • 电话号码(“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
  • 国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
  • 身份证号(15位、18位数字):^\d{15}|\d{18}$
  • 日期格式:^\d{4}-\d{1,2}-\d{1,2}
  • 一年的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)$
  • 腾讯QQ号:[1-9][0-9]{4,8} (腾讯QQ号从10000开始,目前最长为10位)
  • 中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)
  • IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址时有用)
  • IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))

用法举例:

1.php中ip提交验证

// 去除前后空格  
    $ip = trim($ip);  
  
    // 使用正则表达式验证IP地址格式  
    $pattern = '/^(?:(?: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]?)$/';  
    if (!preg_match($pattern, $ip)) {  
       
      echo "请输入正确IP地址"; // 输出错误消息   // 弹窗提示用户输入正确IP地址 
      exit;  

2.修改PHP代码中的preg_match正则表达式,以便匹配以”V”开头、后跟4位数字和字母”A”或”T”的模式,你可以使用以下代码:

if (preg_match('/^V\d{4}[AT]/i', $userAgent)) {  
    $os = 'vivo手机';  
}

这里的正则表达式解释如下:

  • ^ 表示字符串的开始。
  • V 匹配字母”V”。
  • \d{4} 匹配任意4位数字。\d 代表一个数字字符,{4} 指定恰好匹配4次。
  • [AT] 匹配字母”A”或”T”。方括号内的字符集表示可以匹配其中的任意一个字符。
  • i 是一个修饰符,表示匹配时不区分大小写。

因此,整个表达式会匹配以”V”开头,然后是任意4位数字,最后以”A”或”T”结尾的字符串。如果$userAgent变量中包含这样的字符串,那么条件将为真,$os变量将被赋值为’vivo手机’。

if (preg_match(‘/判断条件/i’, $userAgent)){ $os = ‘三星手机’; } 判断条件是 SM- 加一个大写字母 有的有 SAMSUNG

要匹配以”SM-“开头,后跟一个大写字母,并且可能包含”SAMSUNG”的字符串,你可以使用以下的正则表达式:

if (preg_match('/^SM-([A-Z])(.*SAMSUNG.*)?/i', $userAgent)) {  
    $os = '三星手机';  
}

这里的正则表达式解释如下:

  • ^ 表示字符串的开始。
  • SM- 匹配字符串”SM-“。
  • ([A-Z]) 匹配一个大写字母,并将其捕获为一个组。
  • (.*SAMSUNG.*)? 是一个可选的组,匹配任意字符(.)出现零次或多次(*),然后是”SAMSUNG”,再后面是任意字符出现零次或多次。问号(?)表示这个组是可选的,即它可以出现零次或一次。
  • i 是一个修饰符,表示匹配时不区分大小写。

这个正则表达式将匹配以”SM-“开头,后跟一个大写字母,并且可能包含”SAMSUNG”的字符串。如果$userAgent变量中包含这样的字符串,那么条件将为真,$os变量将被赋值为’三星手机’。

if (preg_match(‘/判断条件/i’, $userAgent)){ $os = ‘三星手机’; } 判断条件是 SM- 加一个大写字母 或者是含有 SAMSUNG

if (preg_match('/^(SM-[A-Z]|.*SAMSUNG.*)/i', $userAgent)) {  
    $os = '三星手机';  
}

一号优惠 · 51福利网薅羊毛福利具有时效性,如已失效,请留言
文章名称:《常用的正则表达式大全(数字、字符、固定格式)》-一号优惠 · 51福利网
免责申明:本站所有活动信息均来自网络,如有失效,不实或侵权,请联系我们删除。谢谢

评论 抢沙发

一号优惠经验分享网最新最全薅羊毛,现金红包线报网

一号优惠经验分享网提供每日最新内部优惠,薅羊毛活动,现金红包领取,免费福利和网赚福利手机赚钱线报,打造中国最受欢迎的网赚信息发布平台!51福利网

51联盟线报群赚钱·合作·帮助

登录

找回密码

注册