Linux正则表达式,练习过程可以在本地编辑器或者在线网站,在线推荐,很方便:regex101: build, test, and debug regex
如下是一些正则表达式入门需要涉及:
特殊限定符号:
? 可以匹配0次或者1次, 问号前的字符可有可无,比如 used?---d可有可无, 可匹配use, 也可以匹配到used
* 可以匹配0个或多个,例如 ab*c,可以匹配到:ac abc abbbc
+ 可以出现一次以上的内容, 例如 ab+c, 可以匹配到 abc abbbc
{} 可以允许出现的次数范围, 例如: ab{1}c, 可以匹配到1个b: abc, 如果:ab{1,3}c, 匹配到b有1-3个:abc, abbc, abbbc, 如果是ab{1,}c, 可以匹配到1个以上的多个b
()+可以匹配括号中的内容,例如(ab)+ 可以匹配所有ab
或运算符 OR Operator
a|b)匹配a或b
字符类: Character Classes
[a-z] 标识匹配到a-z区间的所有小写字母
[a-z A-Z 0-9]+ 匹配所有大小写+数字
[^0-9]+ 匹配所有的非数字,包含换行符
元字符: (大写为非) Meta-characters
\d+ 等同于[0-9]+
\D+ 代表 非数字字符,等同于[^0-9]+
\w+ 单词字符(英文、数字、下划线)
\W+ 非单词字符
\s+ 空白字符 (包含Tab 和换行符)
\s+ 非空白字符
. 匹配任意字符(换行符除外)
^a 匹配a开头
a$ 匹配a结尾
贪婪与懒惰匹配: Greedy Match and Lazy Match
<.+> 贪婪匹配, 默认匹配任意字符
<.+?> 懒惰匹配后面加问号
举两个简单的例子:
1、匹配日期格式(YYYY-MM-DD)
表达式:^\d{4}-\d{2}-\d{2}$ (^开头和$结尾)
解释:
\d{4} 匹配 4 位年份(如 2023)
\d{2} 匹配 2 位月份和日期(如 05、12)
注意:此模式仅验证格式,不验证实际合法性(如 2023-13-32 会被匹配,但实际无效)
2、验证手机号码(中国大陆)
表达式:^1[3-9]\d{9}$
解释:
^1 以数字 1 开头(手机号特征)
[3-9] 第二位为 3-9 中的任意数字(排除无效号段)
\d{9} 后续 9 位为任意数字(总长度 11 位)