正则表达式基础

单字符匹配:

\d:匹配所有的数字字符

\D:除了\d

\s:匹配所有的空白字符,\t,空格等

\S:除了\s

\w:匹配数字,字母,下划线,中文

\W:除了\w

.:除了换行符以外的所有字符

[]:匹配其中的任意一个字符,如[0-5]:匹配0到5之间的任意一个数字,同理[a-z],[A-Z]

数量修饰符

{}:修饰前边的一个字符出现多少次

{5,}:至少5次,能匹配多少就匹配多少

{5,8}:至少5次,对多8次

{0,}:任意多次,相当于*

{1,}:至少1次,多了不限,相当于+

{0,1}:可有可无 ,相当于?

延伸的用法:

.*:都能匹配,长度不限

.+:至少一次才能匹配

 

小括号是非常有用的,

():分组

  1. 可以视为一个整体
  2. 子模式   \1   \2    $1   $2

贪婪模式:

.*?

.+?

模式修正符:

re.I:忽略大小写

re.S:视为单行模式

re.M:视为多行模式

re.match():从字符串的头开始匹配,如果匹配成功,返回的是一个对象,匹配失败报错。

re.findall():匹配所有,返回的是一个列表,列表中的元素是匹配到的内容,若没有匹配到则返回一个空列表

re.search():从字符串的任意位置开始匹配,匹配成功就直接返回,匹配不成功就报错。

 

import re
正则表达式的包

string = "this is a love1ly girl lovel1y"
pattern = re.compile(r"lovely")
ret = pattern.search(string)
print(ret.group())
# group()是返回匹配的整个表达式的字符串


    

 

posted @ 2019-02-14 11:20  石桥浪子  阅读(132)  评论(0编辑  收藏  举报