会飞的蝌蚪君

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
>>import re

 

1.元字符

 正则表达式的元字符有:.  $  ^  *  +  ?  {}  [ ]  |  ()  \

# . 通配符(这里一个通配符代表一个字符)


# ^ (尖角符后面的字符必须要在开头)

       


# $ (多咯符后面的字符必须要在结尾)


# * (0-多次,匹配符在尾部,贪婪匹配)



# +
(1-多次,匹配符在尾部,贪婪匹配)



# ? (尾部字符缺失,同样可以匹配)

# {} (选择贪婪个数,是一个闭区间)


注意】:* 相当于{0,} + 相当于{1,} ?相当于{0,1}

# [] 或



# | (或,都可取)


# \ (转义符)

\d 匹配一个数字
\D 匹配一个非数字字符
\w 匹配一个非特殊字符
\s 匹配一个空格
\b 匹配一个单词边界

#() (group)


2.原生字符串
r rawstring 避免正则表达式和Python语法的冲突


3.常用的函数
1)findall(寻找匹配字符,并以列表形式返回) 注意:去 '组优先' 用 ?: 实现
2)finditer


3)
search(匹配一个字符) .group方法拿到匹配字符
 4) match(匹配处于开头位置的一个字符)
 
 1         # 无分组
 2         r = re.match("h\w+", origin)
 3         print(r.group())     # 获取匹配到的所有结果
 4         print(r.groups())    # 获取模型中匹配到的分组结果
 5         print(r.groupdict()) # 获取模型中匹配到的分组结果
 6 
 7         # 有分组
 8 
 9         # 为何要有分组?提取匹配成功的指定内容(先匹配成功全部正则,再匹配成功的局部内容提取出来)
10 
11         r = re.match("h(\w+).*(?P<name>\d)$", origin)
12         print(r.group())     # 获取匹配到的所有结果
13         print(r.groups())    # 获取模型中匹配到的分组结果
14         print(r.groupdict()) # 获取模型中匹配到的分组中所有执行了key的组

 5) split


6)compile


7)sub&subn (替换,替换了那些返回次数)



4.实例
1)IP地址; 192.168.1.1
>>>re.search('(([01]?\d?\d|2[0-4]\d|25[0-9])\.){3}([01]?\d?\d|2[0-4]\d|25[0-9])','192.168.1.1').group()
>>>192.168.1.1
2)计算器:
>>>





posted on 2018-01-26 20:13  会飞的蝌蚪  阅读(121)  评论(0)    收藏  举报