码迷,mamicode.com
首页 > 其他好文 > 详细

工作中常用的正则表达式

时间:2016-07-13 15:29:29      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

正则表达式中的常用符号

  • 匹配输入字符串的开始位置。
  • 匹配输入字符串的结束位置。
  • 匹配前面的子表达式零次或多次。
  • 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。
  • 匹配前面的子表达式一次或多次。+ 等价于 {1,}。
  • 匹配前面的子表达式零次或一次。? 等价于 {0,1}。
  • \d 匹配一个数字字符。等价于 [0-9]。
  • \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
  • 表示模式中的字母会进行大小写不敏感匹配.
  • (pattern)  匹配pattern 并获取这一匹配。
  • {n}  n 是一个非负整数,匹配确定的n 次。
  • {n,m} m  n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。

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、字符相关的正则表达式

  汉字:^[\u4e00-\u9fa5]{0,}$
  长度为3-20的所有字符:^.{3,20}$
  由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
  由数字、26个英文字母或者下划线组成的字符串:^\w+$
  中文、英文、数字包括下划线:^[\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))

工作中常用的正则表达式

标签:

原文地址:http://www.cnblogs.com/wangxin-king/p/5664247.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!