知一的指纹

正则表达式

版权声明: 本文为博主原创文章,发表自 知一的指纹。转载需向 我的邮箱 申请。

正则表达式

用来匹配和处理文本的字符串。基本用途是查找和替换。一种不完备的程序设计语言。


含义列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
.  # 英文句号,匹配任意单个字符包括自身,相当于DOS中的 ? ,SQL中的 _ 。
\ # 反斜杠,元字符,转义用。转义自身用 \\ 。
[] # 中括号,元字符,定义一个字符集合。
- # 连字符,字符区间用,比如0-9、A-Z。只能用在字符集合中。
^ # 取非匹配,字符区间用。
\d # 任何一个数字字符。
\D # 任何一个非数字字符。
\w # 任何一个字母数字字符或下划线字符([a-zA-Z0-9_])
\W # 任何一个非字母数字或非下划线字符([^a-zA-Z0-9_])
\s # 任何一个空白字符([\f\n\r\t\v])
\S # 任何一个非空白字符([^\f\n\r\t\v])
+ # 匹配一个或多个字符,放在字符或字符集合后面。
* # 匹配零个或多个字符,放在字符或字符集合后面。
? # 匹配零个或一个字符,放在字符或字符集合后面。
{} # 指定匹配个数的区间或精确值。{6}、{2,4}。

() # 子表达式
| # 或操作符

懒惰型匹配,匹配最小子集。

1
2
3
+?
*?
{n,}?

位置匹配

1
2
3
4
5
\b  # 单词边界
\B # 不是单词边界
^ # 字符串边界开始
$ # 字符串边界结束
(?m) # 分行匹配模式, 使表达式引擎将分隔符当做一个字符串分隔符对待。

回溯引用

下面例子匹配 空格 字符 空格
原始图片
下面的例子使回溯引用
原始图片
解释回溯引用,\1用来获取(\w+)中的字符串。第一个匹配上的of\1引用,就变成表达式[ ]+(\w+)[ ]+of
其中\1代表模式里的第一个子表达式,\2就会代表着第二个子表达式,以此递推。

替换

原始图片

大小写转换测试工具不支持,待测试

向前查找、向后查找

必须要放到一个字表达式中,如下例子,根据:来匹配,但是不消费他。
(?=) 向前查找

原始图片

(?<=) 向后查找
原始图片

(?!) 负向前查找
(?<!) 负向后查找

嵌入条件

(?(brackreference)true-regex)其中?表明这是一个条件,括号里的brackreference是一个回溯引用,true-regex是一个只在backreference存在时才会被执行的子表达式。
原始图片


例子

不区分大小写匹配

原始图片

字符区间匹配

原始图片

取非匹配

原始图片

匹配多个字符

原始图片

子表达式

原始图片

匹配四位数的年份

原始图片

嵌入查找、向后查找组合应用

原始图片


如果此文章能给您带来小小的提升,不妨小额赞赏我一下,以鼓励我写出更好的文章!
Noogel's WeChat Pay

微信打赏

Noogel's Alipay

支付宝打赏