Skip to content

什么是正则表达式?

正则表达式是构成搜索模式(search pattern)的字符序列。

当您搜索文本中的数据时,您可使用搜索模式来描述您搜索的内容。

正则表达式可以是单字符,或者更复杂的模式。

正则表达式可用于执行所有类型的文本搜索和文本替换操作。

RegExr: Learn, Build, & Test RegEx

限定符(Quantifiers)

(字符)表示括号内内容可以当作字符整体使用

? :表示前面(字符)需要出现0次或者1次

used?:use 和 used

* :匹配前面(字符)0次或者多次

ab*c:ac、abc、abbbc等

+ :匹配出现一次以上的(字符)

ab+c:abc、abbbc等

运算符

{  }运算符

{num}:匹配出现num次的字符

{num1,num2}:匹配出现的(字符)次数在num1和num2之间

num2可以省略,{num1,}表示匹配出现num1次以上字符

/^(S|s){1}$/:匹配单字符S或s

或 ’| ‘运算符

就是平常理解的或运算符

(x|y)--查找由 | 分隔的任何选项。

字符类(Character Classes)

[ ] 运算符

方括号里的内容代表要求匹配的字符只能取自于[它们]

[abc]--查找方括号之间的任何字符。 [0-9]--查找任何从 0 至 9 的数字。 [a-zA-Z]--查找所有的英文字符

^ 运算符

代表匹配除了^后面列出的[以外]的运算符

[^0-9]表示所有的非数字字符(包括换行符)

元字符(Metacharacter)

小写:

  • \d:数字字符 = [0-9]

  • \w:单词字符(英文、数字以及下划线)

  • \s:空白符(包含Tab和换行符)

大写:

  • \D:非数字字符

  • \W:非单词字符

  • \S:非空白字符

其他:

  • \b:标注字符的边界(全字匹配)

  • .:任意字符(不包含换行符)

  • ^:匹配行首

  • $:匹配行尾

  • \:转义字符

正则表达式修饰符

  • i--执行对大小写不敏感的匹配。

  • g--执行全局匹配。

  • m--执行多行匹配。

贪婪/懒惰匹配

正则表达式默认采用贪婪匹配模式,在该模式下意味着会匹配尽可能长的子串

?:贪婪匹配 → 懒惰匹配 例:

.+:默认贪婪匹配"任意字符"

.+?:懒惰匹配"任意字符"