普通字符包含大小写字母、数字。在匹配普通字符时直接写就好。好比"abc"匹配的就是”abc”python
用[ ]括起来,在[ ]中出现的内容会被匹配。例如:[abc]匹配a或b或c正则表达式
量词中的*,+,{}都属于贪婪匹配,就是尽量多的匹配到结果编辑器
str:hello world reg: h.* 此时匹配的结果:hello world
str:<div>hello</div> reg:<.*> 此时匹配的结果:<div>hello</div>
在使用.*后面若是加了"?"则是尽量的少匹配工具
str:hello world reg:h.*? 此时匹配的结果:h
str:<div>hello</div> reg:<.*?> 此时匹配的结果: <div> </div>
在正则中使用()进行分组。测试
例如要匹配一个相对复杂的身份证号。身份证号分红两种。老的身份证号有15位,而新的身份证号有18位。而且新身份证号结尾多是xspa
正则为:
^([1-9]\d{16}[0-9x]|[1-9]\d{14})$
在正则表达式中,有不少有特殊意义的元字符,好比\n和\s等。若是要在正则中匹配正常的"\n"而不是换行就须要对"\"进行转义。code
同理,在python中,对于\n,\s等也是有特殊意义的,若是要获得"\n"也须要对"\"进行转义,因此,若是须要匹配字符\n,在正则表达及python表达中须要写成以下表格形式。blog
目标 | 正则 | python |
\n | \\n | \\\\n |
表1 "\n"转义字符串
此时能够利用r"\n"不转义,即上表中python中正则表达可写为:r"\\n"get