正则表达式
正则表达式
1.基础
字符组: 由“[]”包裹
1 | [Pp]ython |
快捷方式
1 | \s:空白, 换行 |
字符的开始与结束
1 | ^:单词开始 |
任意字符
1 | . :匹配任意字符,不能匹配换行符 |
可选字符
1 | ? :字符出现零次或一次 非贪婪模式 |
范围、重复区间
1 | \d{9} |
速写
1 | + : 匹配1个到无数个 等价于 {1,} |
2.分组、回溯、断言(环视)
分组: 使用”()”
1 | 0731-8825951 |
或者条件
1 | 使用管道符号 | |
非捕获分组:
当我们不需要获取某个分组的内容,但是又想使用分组的特性,此时就可以使用非捕获组(?:表达式),从而不不捕获数据,还能使用分组的功能
分组的回溯引用
1 | <(\w+)>(.*?)</\1> |
正向先行断言
1 | 喜欢(?=你) |
密码强度验证 必须包含 大小写字母 至少一个数字 至少 8 个字符
反向先行断言
反向先行断言(?!表达式)作用是保证右边不能出现某个字符
1 | 喜欢(?!你) |
正向后行断言
(?<=表达式),指在某个位置向左看,表示所在位置左侧必须能匹配
例如:如果要取出喜欢两个字,要求喜欢的前面有我,后面有你,此时
1 | (?<=我)喜欢(?=你) |
反向后行断言
(?<!表达式)
例如:取出喜欢两个字,要求喜欢的前面没有我,后面没有你
1 | (?<!我)喜欢(?!n) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Pengunix!