小明
小李
小巧
小.* 小明和小李子和小巧玲珑 小明和小李子和小巧玲珑 *表示重复零次或多次,即匹配"小"后面0个或多个任意字符
小.+ 小明和小李子和小巧玲珑 小明和小李子和小巧玲珑 +表示重复一次或多次,即只匹配"小"后面1个或多个任意字符
小.{1,2} 小明和小李子和小巧玲珑
小明和
小李子
小巧玲
注意:前面的*,+,?等都是贪婪匹配,也就是尽可能匹配,后面加?号使其变成惰性匹配
正则 待匹配字符 匹配结果 说明
小.*? 小明和小李子和小巧玲珑 小
小
小 惰性匹配
2.4 字符集[][^] 正则 待匹配字符 匹配
结果 说明
小[明李子巧玲珑]* 小明和小李子和小巧玲珑
小明
小李子
小巧玲珑
小[^和]* 小明和小李子和小巧玲珑
小明
小李子
小巧玲珑
[\d] 456bdha3
4
5
6
3
[\d]+ 456bdha3
456
3
2.5 分组 ()与 或 |[^]
身份证号码是一个长度为15或18个字符的字符串,如果是15位则全部由数字组成,首位不能为0;如果是18位,则前17位全部是数字,末位可能是数字或x,下面我们尝试用正则来表示:
正则 待匹配字符 匹配结果 说明
^[1-9]\d{13,16}[0-9x]$ 110101198001017032