惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
博客园 - 【当耐特】
WordPress大学
WordPress大学
爱范儿
爱范儿
美团技术团队
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
量子位
Hugging Face - Blog
Hugging Face - Blog
B
Blog RSS Feed
Recorded Future
Recorded Future
Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
M
MIT News - Artificial intelligence
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 聂微东
H
Hackread – Cybersecurity News, Data Breaches, AI and More
腾讯CDC
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
博客园 - 叶小钗
GbyAI
GbyAI
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
F
Full Disclosure
G
Google Developers Blog
D
Docker
T
Tailwind CSS Blog
C
Check Point Blog
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
B
Blog
博客园 - 三生石上(FineUI控件)
博客园 - Franky
H
Help Net Security
MyScale Blog
MyScale Blog
U
Unit 42
D
DataBreaches.Net
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
InfoQ
阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
L
LangChain Blog
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog

Jun's Blog

2023 年度总结 OS 学习记 之 XV6 如何编译 GraalVM LLVM 中端优化之 InstCombine C++ 中 inline 关键字的语义 链接与库 C++ 移动语义基础 如何优化矩阵相乘 2022年度总结 CUDA初学笔记 汇编语言之保护模式 汇编语言之实模式 浅析 libc++ 中的 string 实现 std::expected 基本使用 C++模板基础 CSAPP第九章笔记之虚拟内存 CSAPP第八章笔记之异常控制流 2021年度总结 编译安装GCC12 如何给LLVM贡献代码 CSAPP第三章笔记Part 2 CSAPP第三章笔记Part 1 GDB基本使用笔记 读Effetive Modern C++ 之类型推导 给计算机新生的一封信 CMake学习笔记 由Redis学习数据结构--字典 C++中lambda表达式基础 由Redis学习数据结构--链表 对Python及爬虫行业的思考 Vim实用技巧 浅谈C++中的类 简要剖析const关键字 使用Hugo和Firebase部署个人博客 浅谈HTTPS证书 Linux常用命令总结 Git学习笔记 Linux下使用v2ray 娱乐至死读书笔记 自控力读书笔记 少有人走的路力读书笔记 Postfix & Dovecot 自建邮箱服务 Linux用户管理 Linux开机流程 Linux文件与目录 Linux硬盘管理 Linux服务浅谈 About Me
正则表达式基础总结
Jun · 2021-03-05 · via Jun's Blog

正则表达式基础总结

· Jun

什么是正则表达式

正则表达式简单来理解就是一个字符串,它可以看作一个规则.通过它我们可以提取一个文本中一些具有相同模式的字符串,或者验证所给字符串是否符合要求等. 比如我们想提取一个文件中所有的电话号码,或者前端判断所给数据,如身份证号码是否合法,有无少输等,这时候正则表达式便起到了很大作用.

元字符

元字符 含义
. 匹配任意单个字符除了换行符
* 匹配>=0个重复的字符
+ 匹配>=1个重复的字符
$ 表示末尾
^ 表示开头
` `
? 非贪婪匹配
\ 转义字符,用于匹配一些保留的字符
(xyz) 字符集,匹配与 xyz 完全相等的字符串
{m,n} 匹配m到n个大括号之前的字符

字符集

我们可以用[]来指定一个字符集,用连字符来指定字符集的范围

  • [a-z]表示匹配所有小写字母
  • [0-9]表示匹配所有数字

否定字符集

^用在字符集中的时候,表示否定的意思

[^0-9]表示匹配所有非数字

简写字符集

正则表达式内置了一些常用的字符集

名称 含义
\w 匹配所有字母数字
\W 匹配所有非字母数字
\d 匹配数字
\D 匹配非数字
\n 匹配一个换行符
\r 匹配一个回车符
\t 匹配一个制表符
\s 匹配所有空格字符
\S 匹配所有非空格字符

重复

  • *表示重复次数大于等于0
  • +表示重复次数大于等于1
  • ?表示重复次数为0或1
  • {n}表示重复n次,{m,n}表示重复m到n次

特征标群

(...)表示括号中的所有字符不可分割,而是作为一个整体参加匹配

常用正则表达式

邮箱

1
^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$

手机号码

1
^1(3|4|5|6|7|8|9)\d{9}$

域名

1
^((http:\/\/)|(https:\/\/))?([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}

IP

1
((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))

引用文献