Python开发5——正则表达式

一、re模块

#在线调试工具:tool.oschina.net/regex/

1、re.match(pattern, string, flags=0):从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,返回None

  ①说明:匹配成功re.match方法返回一个匹配的对象,否则返回None

  ②参数:

      pattern——匹配的正则表达式。

      string——要匹配的字符串。

      flags——标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

import re
print(re.match('www', 'www.runoob.com').span())     # 在起始位置匹配:(0, 3)
print(re.match('com', 'www.runoob.com'))            # 不在起始位置匹配:None

2、re.search(pattern, string, flags=0):扫描整个字符串并返回第一个成功的匹配

  ①说明:匹配成功re.search方法返回一个匹配的对象,否则返回None

  ②参数:

      pattern——匹配的正则表达式。

      string——要匹配的字符串。

      flags——标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

import re

print(re.search('www', 'www.runoob.com').span())    # 在起始位置匹配:(0, 3)
print(re.search('com', 'www.runoob.com').span())    # 不在起始位置匹配:(11, 14)

  ③re.match与re.search的区别:
      re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

3、re.sub(pattern, repl, string, count=0):替换字符串中的匹配项
  ①参数:

      pattern : 正则中的模式字符串。

      repl : 替换的字符串,也可为一个函数。

      string : 要被查找替换的原始字符串。

      count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

import re

phone = "2004-959-559 # 这是一个电话号码"

# 删除注释
num = re.sub(r'#.*$', "", phone)
print ("电话号码 : ", num)

# 移除非数字的内容
num = re.sub(r'\D', "", phone)
print ("电话号码 : ", num)

4、re.findall(pattern, string[, flags]):搜索string,以列表形式返回全部能匹配的子串

二、正则表达式修饰符 - 可选标志

  说明:正则表达式可以包含一些可选标志修饰符来控制匹配的模式。多个标志可以通过按位 OR(|) 来指定。如 re.I | re.M 被设置成 I 和 M 标志:

1、re.I:使匹配对大小写不敏感

2、re.L:做本地化识别(locale-aware)匹配

3、re.M:多行匹配,影响 ^ 和 $

4、re.S:使 . 匹配包括换行在内的所有字符

5、re.U:根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B

6、re.X:该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解

三、正则表达式模式

pyre

 

posted @ 2017-06-02 22:00  下一步之外  阅读(147)  评论(0)    收藏  举报