# -*- coding:UTF-8 -*-
import re
'''
字符匹配:
元字符列表:.^$*+?{[]\|()
\d 匹配任何十进制数 [0-9]
\D 匹配任何非数字字符 [^0-9]
\s 匹配任何空白字符
\S 匹配任何非空白字符
\w 匹配任何字母数字字符 [a-zA-Z0-9]
\W 匹配任何非字母数字字符 [^a-zA-Z0-9]
* 匹配零次或一次
+ 匹配一次或更多次
? 匹配一次或零次
{m} 匹配m个
{m,n} 匹配m-n个
'''
def read_re():
# 使用正则表达式:
p = re.compile('ab*')
print p
# 执行匹配
# match() 是否在字符串刚开始的位置匹配
# search() 扫描字符串,找到匹配的位置
# findall() 找到匹配的所有子串,作为一个列表返回
# finditer() 找到匹配的所有子串,作为一个迭代器返回
#
# group() 返回被匹配的字符串
# start() 返回匹配开始的位置
# end() 返回匹配结束的位置
# span() 返回一个元组包含匹配(开始,结束)的位置
# 匹配
match = re.match(r'dog', 'dog cat dog')
print match
print match.group(0) # group()返回查找到的匹配对象
# 搜索
search = re.search(r'cat', 'dog cat dog')
print search.group(0)
# 查找所有的
findcat = re.findall(r'cat', 'dog cat dog')
print findcat
finddog = re.findall(r'dog', 'dog cat dog')
print finddog
if __name__ == '__main__':
read_re()
Output:
<_sre.SRE_Pattern object at 0x000000000272FB58>
<_sre.SRE_Match object at 0x000000000271A510>
dog
cat
findcat= ['cat']
finddog= ['dog', 'dog']