正则表达式
2020-05-25 本文已影响0人
OakesYa
本文参考菜鸟教程
正则表达式
正则表达式描述了一种字符串匹配的模式,可以用来检查一个字符串中是否包含某种子串并返回,但是大家一般觉得正则表达式有些复杂,其实只要顺序学习下去就可以很好的掌握
特殊字符(如需使用原字符前面加\)
- ^ 匹配输入字符串的起始位置,例如^a代表你输入字符串必须以a字符开头才能匹配
- $ 匹配输入字符串的结尾位置
- . 匹配除换行符 \n 之外的任何单字符
- | 指明两项之间做选择
- () 标记一个子表达式的开始和结束位置
- [ 标记一个中括号表达式的开始,[a-z]表示a-z的任意字母,[0-9]表示0-9的任意数字
- { 标记限定符表达式的开始
限定符
- ? 匹配前面子表达式零次或一次
- * 匹配前面子表达式零次或多次
- + 匹配前面子表达式一次或多次
- {n} n 是一个非负整数。匹配确定的 n 次
- {n,} n 是一个非负整数。至少匹配n 次
- {n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次
注意:* 和 + 限定符都是贪婪的,因为可以匹配多次,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个 ? 就可以实现非贪婪或最小匹配,因为 ? 最多匹配一次。
非打印字符
- \f,\x0c,\cL 匹配一个换页符
- \n,\x0a,\cJ 匹配一个换行符
- \r,\x0d,\cM 匹配一个回车符
- \t,\x09,\cl 匹配一个制表符
- \v,\x0b,\cK 匹配一个垂直制表符
- \s 匹配任何空白字符,包括空格,制表符,换页符等,等同 [ \f\n\r\t\v]
- \S 匹配任何非空白字符,等同 [^ \f\n\r\t\v]
元字符
- [xyz] 字符集合,匹配所包含的任意一个字符
- [^xyz] 负值字符集合,匹配未包含的任意字符
- [a-z] 匹配指定范围的任意字符
- [^a-z] 匹配任何不在置顶范围内的任意字符
- \d 匹配一个数字字符,等价于[0-9]
- \D 匹配一个非数字字符,等价于[^0-9]
-w 匹配字母,数字,下划线,等价于[A-Za-z0-9]
-W 匹配非字母,数字,下划线,等价于[^A-Za-z0-9]