div id="myTime">

正则表达式

正则表达式是对字符串操作的一种逻辑公式. 我们一般使用正则表达式对字符串进行匹
配和过滤. 使用正则的优缺点:

优点:灵活,功能性强,逻辑性强

缺点:上手难,记忆性的东西比较多

http://tool.chinaz.com/regex/ 正则表达式进行在线测试

元字符: 元字符是正则表达式的灵魂.

  字符组:用[]进行括起来,[a-z]表示a-z所有的小写字母,[0-9]表示0-9的所有整数

  简单的元字符:  

 .  匹配除换行符以外任意字符

\w 匹配字母下划线,数字          \W匹配除非字母,数字,下划线的

\s 匹配任意的空白符                \S匹配非空白

\d匹配所有的数字                    \D 匹配非数字

\n匹配换行符                            a|b  a或者b

\t 匹配所有的制表符                  () 一个组,在pycharm中表示优先级

\b 匹配单词的结尾                      ^ 匹配字符串的开始

[]匹配字符组内字符                   [^ ] 匹配除字符组中外的所有字符

$匹配结尾

量词

*重复或者跟多次         +重复1或者跟多次

?重复0或者1次           {n}重复N次

{n,m}   重复n-m次

 

 

贪婪匹配: 在量词中* + {}都是贪婪匹配,就尽可能匹配到多的结果

惰性匹配: 在匹配中使用 .*?就是尽可能少的匹配,可能是0或者是1

 

 

5. 分组

对一串有固有格式的字符串进行处理的使用,就要用上分组

比如身份证表达的方式:^[1-9]\d{14}(\d{2}[0-9x])?$   首先是定义开头必须是1-9的数字,然后首字母后面要跟14位数字,把最后 三位分为一组,最后一个数字有为X的可能

6. 转义
在正则表达式中, 有很多有特殊意义的是元字符, 比如\n和\s等,如果要在正则中匹
配正常的"\n"而不是"换行符"就需要对"\"进行转义, 变成'\\'.在python中, 无论是正则表达式, 还
是待匹配的内容, 都是以字符串的形式出现的, 在字符串中\也有特殊的含义, 本身还需要转
义. 所以如果匹配一次"\n", 字符串中要写成'\\n', 那么正则式就要写成成"\\\\n",这样就太麻烦了,这个时候我们就用到r"\n"这个概念,此时r"\n"就可以了.


 

posted @ 2018-11-16 19:32  lowen107  阅读(105)  评论(0编辑  收藏  举报