跳到主要内容

3 篇博文 含有标签「Regular Expression」

查看所有标签

· 阅读需 3 分钟

字符

元字符描述
*匹配任意字符
|或操作符
\ 转义

空白元字符

元字符说明
[\b]回退(并删除)一个字符(Backspace 键)
\f换页符
\n换行符
\r回车符
\t制表符
\v垂直制表符

字符集

元字符描述
[]匹配一组字符
[^]排除该字符集
[-]字符区间
\d = [0-9]任何一个数字字符
\D = [^0-9]任何一个非数字字符
\s=[\f\n\r\t\v]任何一个空白字符
\S=[^\f\n\r\t\v]任何一个非空白字符
\w = [a-zA-Z0-9_]任何一个字母数字或下划线字符_
\W = [^a-zA-Z0-9_]任何非一个字母数字或下划线字符_
\x十六进制 \x0A即字符 10
\0八进制\011 即字符 9

锚点

元字符描述
^字符串或行的开头
$字符串或行的结束
\b单词边界
\B非单词边界

标志

元字符描述
i忽略大小写
g全局
m多行

反向引用与环视

元字符描述
()子表达式
(?:)非捕获组
\1反向引用匹配 匹配第一个
(?=)向前环视
(?!)否定向前环视
(?<=)向后环视
(?<!)否定向后环视

量词

元字符描述
*匹配零个或多个
*?*的懒惰型
+匹配一个或多个
+?+的懒惰型
?匹配零个或一个(可选)
{n}匹配 n 次重复
{m,n}匹配至少 m 次且最多 n 次
{n,}至少 n 次
{n,}?{n,}的懒惰型

· 阅读需 13 分钟

在需要使用正则时搜一搜,复制粘贴改一改。有些时候看不太懂,只要能够跑的通就满意了,心里没有底,到底正不正确。又需要临时抱佛脚,并没有系统的去学习。学过之后过一段时间,就会忘记,反反复复,因此记录下来。

美国一位知名程序员杰米·加文斯基(Jamie Zawinski)说过一句话:

如果你有一个问题,你想到可以用正则来解决,那么你有两个问题了。

正则很难掌握和利用的工具。

既然这么难,使用的时候搜索以下,就解决问题了。为什么还要学习呢?

如果不熟悉一个技能的时候,遇见问题也想不到可以使用这个技术,根本就不会考虑这个技术。

什么是正则表达式

维基百科中的解释:

正则表达式(英语:Regular Expression,常简写为 regex、regexp 或 RE),又称正则表示式正则表示法规则表达式常规表示法,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。

简单来说正则就是用来匹配处理文本字符串

为什么要使用正则表达式

工作时经常用到正则表达式,例如文件格式匹配

graph LR
A(正则表达式功能) --> B("搜索(爬虫、查找某种类型文件)")
A --> C("替换(比如把一些网址替换成超链接)")
A --> D("校验(手机号、邮箱、身份证、银行可)")

style A fill:#1890ff,color:white,stroke:#1890ff
style B fill:#fa8c16,color:white,stroke:#fa8c16
style C fill:#fa8c16,color:white,stroke:#fa8c16
style D fill:#fa8c16,color:white,stroke:#fa8c16