概述

正则表达式其实就是一种规定,指一个用来形容或者匹配一系列合乎某个句法规定的字符串的单个字符串。

正则根底语法

1.一般字符

语法阐明
[abc]a、b 或 c(简略类)
1任何字符,除了 a、b 或 c(否定)
[a-zA-Z]a到 z 或 A到 Z,中间的字母包含在内(范畴)
[0-9]0到9的字符都包含

2.限定字符

语法阐明
*反复零次或更屡次
+反复一次或更屡次
?反复零次或一次
{n}反复n次
{n,}反复n次或更屡次
{n,m}反复n到m次

3.边界匹配字符

语法阐明
^行的结尾
$行的结尾
\b单词边界

常见快捷匹配

匹配字符串的罕用表达式

  • 汉字:^[\u4e00-\u9fa5]{0,}$
  • 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
  • 长度为3-20的所有字符:^.{3,20}$
  • 由26个大写英文字母组成的字符串:^[A-Z]+$
  • 由26个英文字母组成的字符串:^[A-Za-z]+$
  • 由26个小写英文字母组成的字符串:^[a-z]+$
  • 由数字、26个英文字母或者下划线组成的字符串:^\w+$
  • 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
  • 中文、英文、数字包含下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
  • 中文、英文、数字但不包含下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$

匹配数字的罕用表达式

  • 数字:^[0-9]*$
  • n位的数字:^\d{n}$
  • 至多n位的数字:^\d{n,}$
  • m-n位的数字:^\d{m,n}$
  • 零和非零结尾的数字:^(0|1-9*)$
  • 带1-2位小数的负数或正数:^(-)?\d+(.\d{1,2})?$
  • 非零的负整数:^-[1-9][]0-9″*$ 或 ^-[1-9]\d*$
  • 非负整数:^\d+$ 或 ^[1-9]\d*|0$
  • 浮点数:^(-?\d+)(.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

常见需要表达式

  • Email地址:^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$
  • 手机号码:^(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}$
  • 身份证号(15位、18位数字):^\d{15}|\d{18}$
  • 电话号码(“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX):^($$\d{3,4}-)\|\d{3.4}-)?\d{7,8}$
  • 域名:a-zA-Z0-9{0,62}(/.a-zA-Z0-9{0,62})+/.?
  • 国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
  • InternetURL:[a-zA-z]+://2 或 ^http://([\w-]+.)+[\w-]+(/[\w-./?%&=])?$
  • 明码(以字母结尾,长度在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}
  • 空白行的正则表达式:\n\s*\r (能够用来删除空白行)
  • IP地址:((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))
  • 邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)

    总结

    本文介绍了正则表达式的根底语法,以及罕用表达式,倡议珍藏应用!

本文由mdnice多平台公布


  1. abc ↩
  2. \s ↩