关于后端:看完这篇再也不用担心不会写正则表达式了建议收藏

40次阅读

共计 1596 个字符,预计需要花费 4 分钟才能阅读完成。

概述

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

正则根底语法

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 ↩
正文完
 0