什么是正则表达式?
正则表达式是构成搜索模式(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--执行多行匹配。
贪婪/懒惰匹配
正则表达式默认采用贪婪匹配模式,在该模式下意味着会匹配尽可能长的子串
?:贪婪匹配 → 懒惰匹配 例:
.+:默认贪婪匹配"任意字符"
.+?:懒惰匹配"任意字符"