简介

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

基本语法

选择

| 竖直分隔符代表选择。例如 “gray|grey” 可以匹配 grey 或 gray

数量限定

  • +:加号代表前面的字符必须至少出现一次。(1 次、或多次)。例如,“goo+gle” 可以匹配 google、gooogle、goooogle 等
  • ?:问号代表前面的字符最多只可以出现一次。(0 次、或 1 次)。例如,“colou?r” 可以匹配 color 或者 colour
  • *:星号代表前面的字符可以不出现,也可以出现一次或者多次。(0 次、或 1 次、或多次)。例如,“0*42” 可以匹配 42、042、0042、00042 等

匹配

圆括号可以用来定义操作符的范围和优先度。例如,“gr(a|e)y” 等价于 “gray|grey”,“(grand)?father” 匹配 father 和 grandfather

表达式全集

详情查询:表达式全集 - 适用于 Perl 或者 Python 编程语言

优先级

优先级符号
最高\
( )、(?: )、( ?= )、[ ]
*、+、?、{n}、{n,}、{m,n}
^、$、中介字符
最低

练习文本:

txt
abcdefghijklmnopqrstuvwxyz

a bc def ghij klmno pqrstu vwxyz

0123456789

0 12 345 6789 0

这是一段汉字,也是一段中国字。而 且还 是隔开 的 汉字

_	_

?><:"{}!@#%$&*()+-=';/.,[]\'

? >< :"{ }!@# %$&*( )+-=' ;/.,[ ]\'

192.168.12.1

249.249.240.195

333.246.244.244

255.255.255.255

1.1.1.1

1.2.3.2555
// 匹配 IP 地址
\b((1\d{2}|2[0-4]\d|25[0-5]|\d{1,2})\.){3}(1\d{2}|2[0-4]\d|25[0-5]|\d{1,2})\b

结果图:

匹配结果
匹配结果

参考