正则表达式

基础正则表达式

字符

表达式 描述
[abc] 字符集。匹配集合中所含的任一字符。
[^abc] 否定字符集。匹配任何不在集合中的字符。
[a-z] 字符范围。匹配指定范围内的任意字符。
. 匹配除换行符以外的任何单个字符。
\ 转义字符。
\w 匹配任何字母数字,包括下划线(等价于[A-Za-z0-9_])。
\W 匹配任何非字母数字(等价于[^A-Za-z0-9_])。
\d 数字。匹配任何数字。
\D 非数字。匹配任何非数字字符。
\s 空白。匹配任何空白字符,包括空格、制表符等。
\S 非空白。匹配任何非空白字符。

分组和引用

表达式 描述
(expression) 分组。匹配括号里的整个表达式。
(?:expression) 非捕获分组。匹配括号里的整个字符串但不获取匹配结果,拿不到分组引用。
\num 对前面所匹配分组的引用。比如(\d)\1可以匹配两个相同的数字,(Code)(Sheep)\1\2则可以匹配CodeSheepCodeSheep

锚点/边界

表达式 描述
^ 匹配字符串或行开头。
$ 匹配字符串或行结尾。
\b 匹配单词边界。比如Sheep\b可以匹配CodeSheep末尾的Sheep,不能匹配CodeSheepCode中的Sheep
\B 匹配非单词边界。比如Code\B可以匹配HelloCodeSheep中的Code,不能匹配HelloCode中的Code

数量表示

表达式 描述
? 匹配前面的表达式0个或1个。即表示可选项。
+ 匹配前面的表达式至少1个。
* 匹配前面的表达式0个或多个。
| 或运算符。并集,可以匹配符号前后的表达式。
{m} 匹配前面的表达式m个。
{m,} 匹配前面的表达式最少m个。
{m,n} 匹配前面的表达式最少m个,最多n个。

预查断言

表达式 描述
(?=) 正向预查。比如Code(?=Sheep)能匹配CodeSheep中的Code,但不能匹配CodePig中的Code
(?!) 正向否定预查。比如Code(?!Sheep)不能匹配CodeSheep中的Code,但能匹配CodePig中的Code
(?<=) 反向预查。比如(?<=Code)Sheep能匹配CodeSheep中的Sheep,但不能匹配ReadSheep中的Sheep
(?<!) 反向否定预查。比如(?<!Code)Sheep不能匹配CodeSheep中的Sheep,但能匹配ReadSheep中的Sheep

特殊标志

表达式 描述
/.../i 忽略大小写。
/.../g 全局匹配。
/.../m 多行修饰符。用于多行匹配。

常用正则表达式

数字校验

描述 正则表达式 备注
数字 ^[0-9]*$
n位数字 ^\d{n}$
至少n位数字 ^\d{n,}$
m~n位数字 ^\d{m,n}$
整数 ^(-?[1-9]\d*)$ 非0开头,包括正整数和负整数
正整数 ^[1-9]\d*$
负整数 ^-[1-9]\d*$
非负整数 ^(([1-9]\d*)|0)$
非正整数 ^((-[1-9]\d*)|0)$
浮点数 ^-?(?:[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0\.0+|0)$ 包括正浮点数和负浮点数
正浮点数 ^(?:[1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
负浮点数 ^-(?:[1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
非正浮点数 ^(?:-(?:[1-9]\d*\.\d+|0\.\d*[1-9]\d*)|0\.0+|0)$ 包含0
非负浮点数 ^(?:[1-9]\d*\.\d+|0\.\d+|0\.0+|0)$ 包含0
仅一位小数 ^-?(?:0|[1-9][0-9]*)\.[0-9]{1}$
最少一位小数 ^-?(?:0|[1-9][0-9]*)\.[0-9]{1,}$
最多两位小数 ^-?(?:0|[1-9][0-9]*)\.[0-9]{1,2}$
连续重复的数字 ^(\d)\1+$ 例如:111222

字符校验

描述 正则表达式 备注
中文 ^[\u4E00-\u9FA5]+$
全角字符 ^[\uFF00-\uFFFF]+$
半角字符 ^[\u0000-\u00FF]+$
英文字符串(大写) ^[A-Z]+$
英文字符串(小写) ^[a-z]+$
英文字符串(不区分大小写) ^[A-Za-z]+$
中文和数字 ^(?:[\u4E00-\u9FA5]{0,}|\d)+$
英文和数字 ^[A-Za-z0-9]+$
数字、英文字母或者下划线组成的字符串 ^\w+$
中文、英文、数字包括下划线 ^[\u4E00-\u9FA5\w]+$
不含字母的字符串 ^[^A-Za-z]*$
连续重复的字符串 ^(.)\1+$ 例如:aabb
长度为n的字符串 ^.{n}$
ASCII ^[ -~]$

日期和时间校验

描述 正则表达式 备注
日期 ^\d{1,4}-(?:1[0-2]|0?[1-9])-(?:0?[1-9]|[1-2]\d|30|31)$ 弱校验,例如:2022-06-12
日期 ^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$ 严格校验,考虑平闰年
时间 ^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$ 12小时制,例如:11:21:31
时间 ^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$ 24小时制,例如:23:21:31
日期+时间 ^(\d{1,4}-(?:1[0-2]|0?[1-9])-(?:0?[1-9]|[1-2]\d|30|31)) ((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d)$ 例如:2000-11-11 23:20:21

日常生活相关

描述 正则表达式 备注
中文名 ^[\u4E00-\u9FA5·]{2,16}$
英文名 ^[a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]$
车牌号 ^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$ 不含新能源
车牌号 ^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z](?:(?:[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳])|(?:(?:\d{5}[A-HJK])|(?:[A-HJK][A-HJ-NP-Z0-9][0-9]{4})))$ 包含新能源
火车车次 ^[GCDZTSPKXLY1-9]\d{1,4}$ 例如:G1234
手机号 ^(?:(?:\+|00)86)?1[3-9]\d{9}$ 弱匹配
手机号 ^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$ 严格匹配
固话号码 ^(?:(?:\d{3}-)?\d{8}|^(?:\d{4}-)?\d{7,8})(?:-\d+)?$
手机IMEI码 ^\d{15,17}$ 一般是15位
邮编 ^(?:0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$ 例如:211100
统一社会信用代码 ^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$
身份证号码(1代) ^[1-9]\d{7}(?:0\d|10|11|12)(?:0[1-9]|[1-2][\d]|30|31)\d{3}$ 15位数字
身份证号码(2代) ^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[0-9Xx]$ 18位数字
QQ号 ^[1-9][0-9]{4,}$ 一般是5到10位
微信号 ^[a-zA-Z][-_a-zA-Z0-9]{5,19}$ 一般6~20位,字母开头,可包含字母、数字、-、_,不含特殊字符
股票代码 ^(s[hz]|S[HZ])(000[\d]{3}|002[\d]{3}|300[\d]{3}|600[\d]{3}|60[\d]{4})$ A股,例如:600519
银行卡卡号 ^[1-9]{1}(?:\d{15}|\d{18})$ 一般为19位

互联网相关

描述 正则表达式 备注
域名 ^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$ 例如:r2coding.com
网址 ^(?:https?:\/\/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$ 例如:https://www.r2coding.com/
带端口号的网址(或IP) ``^(?:https?

基础正则表达式及常用正则表达式相关推荐

  1. 前端开发中的 正则表达式 及常用正则表达式大全

    RegExp 是正则表达式(Regular expression)的缩写,就是用一个"字符串"来描述一个特征,然后去验证另一个"字符串"是否符合这个特征.比如 ...

  2. 正则表达式(常用正则表达式)

    一.正则表达式 1.被选字符:规定某字符上的被选字符集(例:[0-9].[a-z].[A-Z]): 2.预定义字符集:常用备选字符的简化符号: 2.1.[0-9]                    ...

  3. 正则表达式基础 和 C#常用正则表达式 [转]

    正则表达式基础知识 原文引用地址: http://fineboy.cnblogs.com/archive/2005/09/08/232410.html 一个正则表达式就是由普通字符(例如字符 a 到 ...

  4. python常用正则表达式_Python3常用正则表达式

    正则表达式速查表 字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个向后引用.或一个八进制转义符.例如,"n"匹配字符"n"."\ ...

  5. 手机号码与邮箱验证的正则表达式及其常用正则表达式

    var reg = /^1[3|4|5|7|8][0-9]{9}$/; //验证规则 var phoneNum = '15507621999';//手机号码 var flag = reg.test(p ...

  6. php 浮点数 正则表达式,PHP常用正则表达式

    //  域名正则式 const URLRULE     ='/^http[s]?:\/\/(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-z_!~*\'()-]+\.)*([0 ...

  7. 正则表达式与常用文本处理工具

    正则表达式与常用文本处理工具 正则表达式概述 基础正则表达式 基础正则表达式元字符 扩展正则表达式 概述 扩展元字符 文本处理器 grep 示例 sed sed 命令 示例 输出文件内容 删除符合条件 ...

  8. [python] 常用正则表达式爬取网页信息及分析HTML标签总结

    这篇文章主要是介绍Python爬取网页信息时,经常使用的正则表达式及方法.它是一篇总结性文章,实用性比较大,主要解决自己遇到的爬虫问题,也希望对你有所帮助~ 当然如果会Selenium基于自动化测试爬 ...

  9. matlab读取正则找科学,MATLAB常用正则表达式记录

    MATLAB正则表达式 一.正则表达式 正则表达式是一串用于定义某种模式的字符.在有些情况下(例如,在解析程序输入或处理文本块时),您通常会使用正则表达式在文本中搜索与该模式匹配的一组单词. 数据处理 ...

最新文章

  1. 输出控制台传递的参数——小小实例。
  2. 面试必备之:MFC socket编程(浅出+深度:服务端和客户端端口问题)
  3. redis internal【转】
  4. AI圈最新深度学习量化算法!
  5. Vue001_模板语法
  6. 实用程序类与函数式编程无关
  7. java jframe 设置背景图片_JFrame如何设置背景图片
  8. Linux rm命令:删除文件或目录
  9. java并发包作者lee_Java的一些并发包
  10. [导入]在asp.net中利用FileUplad控件从同一个页面上传多个文件
  11. (四)洞悉linux下的Netfilteramp;iptables:包过滤子系统iptable_filter
  12. 一个生肖一首诗,看看你是哪一首?
  13. ios13 微信提示音插件_ios13怎么设置微信提示音
  14. c语言程序小兔子吃萝卜图片,小白兔吃萝卜看图写话范文
  15. 阿里云安全组是什么?如何配置安全组(图文教程)?
  16. 解决 `Failed to connect to github.com port 443: Connection refused`
  17. 蓝牙 aptx android,没错,现在蓝牙耳机可以开始谈音质了 高通aptX HD SONY LDAC
  18. pandas duplicated() 重复行标记与drop_duplicates()删除
  19. vuecli4关于Warning in ./src/plugins/element.js “export ‘default’ (imported as ‘Vue’) was not found in
  20. 1.1 行列式(1)

热门文章

  1. 使用Rust开发操作系统(UEFI基本介绍)
  2. MOSES的高级特征和功能
  3. Linux —进程间的五种通信方式—(半双工管道、命名管道、消息队列、信号、共享内存),外加信号量。直接上代码:
  4. 【转帖-美文欣赏】江南
  5. 盘点机器人四大家族——KUKA机器人
  6. DeepFlow: Deep Learning-Based Malware Detection by Mining Android Application for Abnormal Usage 2
  7. 2:STM32CubeMX配置STM32F103C8T6驱动-SPI驱动
  8. XLNet 详解(看不懂你来骂我)
  9. 用好这28个工具,开发效率爆涨
  10. 使用cmd指令生成Doc文档