在开发时,常常需要用到字符串匹配的需求,而由于匹配需求的复杂性,我们不能仅限于 findstr() 函数,为了解决这个问题,我们需要引入正则表达式的概念,正则表达式在脚本语言中十分好用,但其规则需要强行记忆,因此写下这篇文章备份,也可以当作工具书查看
限定符
?:前面的字符只出现 0 次或 1 次,例如:/ab?c,会匹配abc、ac*:前面的字符出现 0 次或无数次,例如:/ab*c,会匹配abc、abbbc、ac+:前面的字符出现 1 次或无数次,例如:/ab+c,会匹配abc、abbbc,但不会匹配ac{start, end}:实现对前面的字符更精细的控制,可以限定出现的次数,例如:/ab{2}c,只会匹配abbc;/ab{2,4}c,则会匹配abbc、abbbc、abbbbc;/ab{2,}c,则会匹配abbc、abbbc等,b可以出现 2 次及以上(),会将括号内的内容作为一个整体,后面可以添加上述限定符修饰
或运算符
|:运算符表示条件的或判断,例如:a (cat|dog) ,则匹配 a cat 、a dog
字符类
[]:表示匹配的字符只能取自于方括号内的内容,例如:/[abc]+就只会匹配全句中只包含abc字母的[a-zA-Z0-9]+:表示匹配所有的字母小写、字母大写和数字[^0-9]+:表示匹配所有数字除外的字符
元字符
\d:数字字符,等价于[0-9]\w:英文字符、数字和下划线\s:空白符,包含 tab 字符和换行符\D:非数字字符,等价于[^0-9]\W:非英文字符\S:非空白符.:代表任意的字符(不包含换行符)^a:匹配行首a$:匹配行尾\b:表示单词字符的边界,表示匹配文本的结束