正则表达式

2019-01-03  本文已影响0人  最尾一名

重要概念

元字符

代码 / 语法 说明
. 匹配除换行以外的任意字符
\w 字母、数字、下划线
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

字符转义

想查找元字符本身的话,在元字符前加上 \ ,比如 \\ 匹配 \

重复

代码 / 语法 说明
* 重复零次或更多次
+ 重复一次或更多次
? 零次或一次
{n} 重复 n 次
{n,} 至少重复 n 次
{n,m} 重复 n 到 m 次

字符类

如果想匹配元字符不能完全匹配的字符,用方括号列出。如:
[a-zA-Z] 匹配 大小写字母。

分支条件

| 将分支条件分隔开。如:
(?0\d{2}\)?[- ]?\d{8}|0\d{2}[- ]?\d{8} 匹配形如 010-88888888(010) 88888888 的电话号码。

分组

可以用小括号来指定子表达式(分组)。如:
(\d{1,3}.){3}\d{1,3} 匹配形如 127.0.0.1 的 IP 地址。

反义

代码 / 语法 说明
\W 匹配除数字、字母或下划线以外的任意字符
\S 匹配任意的非空白符
\D 匹配非数字
\B 匹配非单词的开始或结束
[^x] x 以外的字符
^aeiou aeiou 以外的字符

后向引用

注释

小括号的另一种用途是通过语法(?#comment)来包含注释。

贪婪与懒惰

代码 / 语法 说明
*? 重复任意次,但次数尽可能少
+? 重复 1 次或更多次,但次数尽可能少
?? 重复 0 次或 1 次,但次数尽可能少
{n,m}? 重复 n ~ m次,但次数尽可能少
{n}? 重复 n 次以上,但次数尽可能少

参考链接

https://www.jb51.net/tools/zhengze.html

上一篇 下一篇

猜你喜欢

热点阅读