正则表达式
正则表达式
以下是扩展正则表达式,基本正则表达式稍有不同,扩展表达式使用 egrep,sed -E, grep -E
与文件通配符(wildcard)用法不同
正则表达式中是区分大小写的
正则表达式会匹配到第一个(起始位置最前),然后再是最贪婪的字符串。所以
colou??r
是没有意义的正则表达式会尽可能完全匹配,在此基础上满足前面的尽可能贪婪匹配
1
2
3
4(.*) (.*)
ab ab // 前一个组2,后一个组2
(.*)(.*)
ab ab //都属于组2单词分割符
\b 是单词的边界,实际上不存在
和 ^ $ 类似
it’s a cat中,实际有八个单词分隔符
red|apple|banana 如果没有括号,是以两个 | 之间为一个整体
捕获组
正则表达式((cat)|dog)表示匹配cat或者dog。这里有两个捕获组,如果输入文本是dog,那么捕获组1是dog,捕获组2为空。
常用标志
标志 描述 i 忽略大小写 g 全局搜索 m 多行修饰符:锚点 ^
$
在每行的起始(原本在全文开头和结尾)区分非捕获组和断言
非捕获组(?:)会被匹配到,到不会被捕获。常用于使用 | 时需要括号,但又不想捕获,如
(red|blue|green) color
只是单纯需要匹配颜色,就可以用(?:red|blue|green) color
断言不会被匹配(指出现在 \0 中),也不会被捕获,也不消耗字符
预查,同样是不会被捕获的
Windows(?=95|98|NT)
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\!\@\#\$\%\^\&\*\(\)]).*{8,}
强密码注意预查只是断言并不消耗字符,如上面强密码例子,断言有任意字符开头的小写字母,大写字母,但它们并不消耗字符!
不要用 \w{2, 6}
,中间不能有空格!应该写 \w{2,6}
正则表达式
https://lllei.top/2022/10/02/正则表达式/