正则表达式

1. 正则表达式本身和python没有什么关系,是一种独立的规则,独立的语言,是匹配字符串内容的一种规则

官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,

这个“规则字符串”用来表达对字符串的一种过滤逻辑。

 

2. 正则表达式是什么?能做什么?

  从大段的文字中找到符合规则的内容

  判断某个字符串是否完全符合规则

3. 元字符

  \w 匹配 数字,字母,下划线[a-zA-Z0-9_]

  \s 匹配所有空白符 换行符/制表符,空格

    \n 匹配换行符

    \t 匹配制表符

  \d 匹配所有数字[0-9]

  \W ,\D,\S 和\w,\d,\s取反  [\s\S] [\d\D] [\w\W]是三组全集 意思是匹配所有字符

  \b 表示单词的边界

  ^ 匹配一个字符串的开始

  $ 匹配一个字符串的结束

  . 匹配出换行符之外的所有字符

  |   a|b 符合a规则的或者符合b规则的都可以被匹配

      将更复杂更长的规则写在前面

  () 分组  表示给几个字符加上量词约束的时候,就给这些字符跟在一个组

  [ ] 字符组

    在同一个位置上可以出现的字符的范围(只要出现在中括号内的内容都可以被匹配)

     [^]     只要不出现在中括号中的内容都可以被匹配

    有一些有特殊意义的元字符进入字符组中会回复它本来的意义 :  .  |  [  ]  ( )

   \  转义符

    在正则表达式中,有很多有特殊意义的是元字符,比如\d和\s等,如果要在正则中匹配正常的"\d"而不是"数字"就需要对"\"进行转义,变成'\\'。

4.量词

  {n} 表示这个量词前面的字符出现n次

  {n,}表示这个量词前面的字符至少出现n次

  {n,m}表示这个量词前面的字符出现n到m次

  ?表示匹配量词前面的字符出现0次或者1次,表示可有可 

  +表示匹配量词前面的字符出现1次或者多次

  *表示匹配量词前面的字符出现0次或者多次

5.正则表达式匹配的特点

  贪婪匹配,他会在允许的范围内取最长的结果\

  非贪婪模式/惰性匹配,在量词后面加上?表示取它能取的最少

       .*?x   # 匹配任意非换行符字符任意长度 直到遇到x就停止

 

6练习  正则测试网址http://tool.chinaz.com/regex/

  匹配整数  
  匹配小数
  匹配小数或者整数
  匹配身份证号码 (以非0开头,15位数字或者18位,最后一位可以是x或者数字)

答案:
\d+
\d+\.\d+
\d+(\.\d+)?  或者    \d+\.\d+|\d+
[1-9]\d{16}[\dx]|[1-9]\d{14}  或者  [1-9]\d{14}(\d{2}[\dx])?
posted @ 2018-08-16 17:34  amberLIU  阅读(159)  评论(0编辑  收藏  举报