码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础-re正则模块

时间:2017-10-19 14:58:21      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:数字   dff   元字符   mat   re模块   返回结果   split()   使用   分割   

一、简介:
正则表达式:是一种小型的、高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过re模块实现,正则表达式模式被编译成
一系列的字节码,然后由用C编写的匹配引擎执行。

二、字符匹配(普通字符、元字符)
普通字符:
元字符:. ^ $ * + ? { } [ ] | ( ) \

\后边跟元字符去除特殊功能
\后边跟普通字符实现特殊功能

\d 匹配任何十进制数;相当于[0-9]
\D 匹配任何非数字字符;相当于[^0-9]
\s 匹配任何空白字符;相当于[ \t\n\r\f\v]
\S 匹配任何非空白字符;相当于[^ \t\n\r\f\v]
\w 匹配任何字母数字字符;相当于[a-zA-Z0-9_]
\W 匹配任何非字母数字字符;相当于[^a-zA-Z0-9_]
\b 匹配一个单词边界,比如空格,&,#等

import re
匹配第一个满足的结果
print(re.search(fansik, fansik,,,,,fansik).group())

匹配手机号:
print(re.findall(^0?1[3|4|5|8][0-9]\d{8}$, 13141466177))

为分组取名字
print(re.search((?P<id>\d{3})/(?P<name>\w{3}), asfda521/dfdsfaa).group(id))
print(re.search((?P<id>\d{3})/(?P<name>\w{3}), asfda521/dfdsfaa).group(name))

取消组的优先级
print(re.findall(www.(\w+).com, www.baidu.com))
# 执行结果:
[baidu]

print(re.findall(www.(?:\w+).com, www.baidu.com)) # 取消优先级后的执行结果: [www.baidu.com]

正则表达式的方法:
findall():所有结果都返回到一个列表里
search():返回匹配到的第一个对象(object),对象可以调用group()返回结果
match():只在字符串开始匹配匹配
print(re.match(‘fansik‘, ‘fansikfanjinbao‘).group())
split():以指定字符分割字符串
print(re.split(ma, fansikmafanjinbaomazhansanmalisi))
执行结果:
[fansik, fanjinbao, zhansan, lisi]
re.sub():字符替换
print(re.sub(ma, df, fansikmafanjinbaomazhansanmalisi))
执行结果:
fansikdffanjinbaodfzhansandflisi
re.comile():编译一个规则,使用与该规则被反复使用的情况下
obj = re.compile(\.com)
print(obj.findall(fansik.com))
常用的匹配规则
手机:/^0?1[3|4|5|8][0-9]\d{8}$/
固话:/^0[\d]{2,3}-[\d]{7,8}$/
电子邮箱:/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/
用户名:/^[a-z0-9_-]{3,16}$/
密码:/^[a-z0-9_-]{6,18}$/
URL:/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/

Python基础-re正则模块

标签:数字   dff   元字符   mat   re模块   返回结果   split()   使用   分割   

原文地址:http://www.cnblogs.com/fansik/p/7692223.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!