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

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
V
Visual Studio Blog
The GitHub Blog
The GitHub Blog
Apple Machine Learning Research
Apple Machine Learning Research
J
Java Code Geeks
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
人人都是产品经理
人人都是产品经理
H
Heimdal Security Blog
Last Week in AI
Last Week in AI
博客园 - 【当耐特】
Cyberwarzone
Cyberwarzone
Google DeepMind News
Google DeepMind News
雷峰网
雷峰网
Hacker News: Ask HN
Hacker News: Ask HN
Webroot Blog
Webroot Blog
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog
A
About on SuperTechFans
V2EX - 技术
V2EX - 技术
小众软件
小众软件
博客园 - Franky
博客园 - 司徒正美
P
Privacy International News Feed
爱范儿
爱范儿
U
Unit 42
博客园 - 叶小钗
The Hacker News
The Hacker News
C
Check Point Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Simon Willison's Weblog
Simon Willison's Weblog
N
News and Events Feed by Topic
D
Docker
T
Threatpost
MongoDB | Blog
MongoDB | Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Help Net Security
L
LINUX DO - 最新话题
Security Latest
Security Latest
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
A
Arctic Wolf
Spread Privacy
Spread Privacy

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))

引用文献