python正则表达式手记
----------re模块进行正则的使用----------
#result=re.match(正则表达式,要匹配的字符串):使用正则对字符串进行过滤从前面开始匹配
#result.group():将获得到的数据取出
#result=re.search(正则表达式,要匹配的字符串):使用正则对字符串进行过滤从后面开始匹配
#result==None:判断正则表达式是否获取到内容,如果为True,则没有获取到内容
#re.search(r'\d+','my hight 177 cm').group():使用正则读字符串进行过滤从找到符合要求的字符开始匹配。
#re.findall(r'\d+','my hight 177 cm my weight 100 kg'):获取字符串中所有符合正则条件的数据信息,并保存到一个列表中
#re.sub(r'\d+','100','my high 177 cm'):获取字符串中所有符合正则条件的数据信息,并使用第二个位置上的数据信息对其进行数据的替换操作
第二个位置可以配合函数进行处理,return返回值为str类型
#re.split(r':| ','address:beijing xxx@126.com'):根据正则表示式提供的规则对字符串进行有效的切割操作。并将结果存储到对应的列表中
----------正则表达式单字符匹配----------
.:匹配任意字符
[]:匹配[]中列举的字符
\d:匹配任意一个数字
\D:匹配非数字,即不是数字
\s;匹配空吧即 空格、tab键
\S:匹配非空白
\w:匹配单词字符,字母、数字、下划线
\W:匹配非单词字符,字母、数字、下划线
----------正则表达式多个字符匹配----------
*:匹配前一个字符出现0次或者无限次,即可有可无
+:匹配前一个字符出现1次或者无限次,即只有有1次
?:匹配前一个字符出现1次或者0次,即要么有1次,要么没有
{m}:匹配前一个字符出现m次
{m,n}:匹配前一个字符出现从m到n次
---------匹配开头结尾----------
^:匹配字符串开头
$:匹配字符串结尾
\:转义
---------匹配分组----------
|:匹配左右任意一个表达式
():将括号中字符作为一个分组
\<num>:引用分组num匹配到的字符串
(?P<name>):分组起别名
(?P=name):引用别名为name分组匹配到的字符串
---------附:正则表达式的练习题---------
1、匹配网址
有一批网址:
http://www.interoem.com/messageinfo.asp?id=35
http://3995503.com/class/class09/news_show.asp?id=14
http://lib.wzmc.edu.cn/news/onews.asp?id=769
http://www.zy-ls.com/alfx.asp?newsid=377&id=6
http://www.fincm.com/newslist.asp?id=415
需要 正则后为:
http://www.interoem.com/
http://3995503.com/
http://lib.wzmc.edu.cn/
http://www.zy-ls.com/
http://www.fincm.com/
代码实现:
def testFirst():
#要进行处理的数据
strHtml='http://www.interoem.com/messageinfo.asp?id=35 http://3995503.com/class/class09/news_show.asp?id=14 http://lib.wzmc.edu.cn/news/onews.asp?id=769 http://www.zy-ls.com/alfx.asp?newsid=377&id=6 http://www.fincm.com/newslist.asp?id=415' #strHtml='http://www.interoem.com/messageinfo.asp?id=35' print("转化前对应的数据:%s"%strHtml) #进程正在表达式处理
result=re.findall("(http://.*?\.(com|cn)/)",strHtml) #测试
#result = re.match("http://.*\.(com|cn)/",strHtml).group() #创建一个变量,进行结果的存储
strResult='' #变量结果
for item in result:
strResult+=item[0]+" " #打印出结果
print ("转化后对应的数据:%s"%strResult)
testOne
2、 匹配所有合法的Python标识符
实现代码:
#引用对应的包
import re import keyword #2. 匹配所有合法的Python标识符
def testFive():
#获取到python中关键字的列表
keyList=keyword.kwlist strKey="("+'|'.join(keyList)+")" #获取待处理的数据
strTitle="int main str wfwfwfwfdsfstr andand ifwhile" #打印待处理的数据
print("处理前的数据:%s"%strTitle) #进行正则的处理
result=re.findall(strKey,strTitle) #打印处理后的数据
print ("处理后的数据:%s"%str(result))
testTwo
3、匹配合法的ip地址
代码实现:
引用包
import re #3. 匹配合法的ip地址
def testSex():
#接受用户输入的ip地址
strTitle=raw_input("请输入要进行判断的ip地址:") strRe=''
strRe+='([1-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])'#第一位
strRe+='\.'
strRe+='([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])'#第二位
strRe+='\.'
strRe+='([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])'#第三位
strRe+='\.'
strRe+='([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$'#第四位 #进行ip是否合法的判断
result=re.match(strRe,strTitle) if result==None:
print("匹配失败!")
else:
print("匹配成功!")
testThree
python正则表达式手记的更多相关文章
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- Python正则表达式中的re.S
title: Python正则表达式中的re.S date: 2014-12-21 09:55:54 categories: [Python] tags: [正则表达式,python] --- 在Py ...
- Python 正则表达式入门(初级篇)
Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...
- python正则表达式re
Python正则表达式: re 正则表达式的元字符有. ^ $ * ? { [ ] | ( ).表示任意字符[]用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字符集,对于字符集中的字符可 ...
- Python正则表达式详解
我用双手成就你的梦想 python正则表达式 ^ 匹配开始 $ 匹配行尾 . 匹配出换行符以外的任何单个字符,使用-m选项允许其匹配换行符也是如此 [...] 匹配括号内任何当个字符(也有或的意思) ...
- 比较详细Python正则表达式操作指南(re使用)
比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...
- Python正则表达式学习摘要及资料
摘要 在正则表达式中,如果直接给出字符,就是精确匹配. {m,n}? 对于前一个字符重复 m 到 n 次,并且取尽可能少的情况 在字符串'aaaaaa'中,a{2,4} 会匹配 4 个 a,但 a{2 ...
- python正则表达式 小例几则
会用到的语法 正则字符 释义 举例 + 前面元素至少出现一次 ab+:ab.abbbb 等 * 前面元素出现0次或多次 ab*:a.ab.abb 等 ? 匹配前面的一次或0次 Ab?: A.Ab 等 ...
- Python 正则表达式-OK
Python正则表达式入门 一. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分. 正则表达式是用于处理字符串的强大工具, 拥有自己独特的语法以及一个独立的处理引擎, 效率上 ...
随机推荐
- 【highchart】经典问题
摘要 记录遇到的一些问题和解决方案 时差 数据容量 多表联动 1. 时差 问题描述 highcharts 默认是标准 UTC 时间,而国内默认是东八区时间,所以会有8个小时的时差 解决方法 使用hig ...
- vue使用中的随笔
在vue中vue-router配置的路径默认有"#"号,虽然无伤大雅,但是很多客户都不想看到,所以在初始配置路由的时候加上下面一句代码就可以了 mode:'history', 路径 ...
- 初学Python(五)——元组
初学Python(五)——元组 初学Python,主要整理一些学习到的知识点,这次是元组. #-*- coding:utf-8 -*- #定义元素 t = (1,2,3) #添加元素 #删除元素 #更 ...
- Android学习笔记-ImageView(图像视图)
本节引言: 本节介绍的UI基础控件是:ImageView(图像视图),见名知意,就是用来显示图像的一个View或者说控件! 官方API:ImageView;本节讲解的内容如下: ImageView的s ...
- 如何通过binlog获取我们想要的MySql语句?
前言 MySql的binlog一般用于我们对数据的恢复,以及从数据库对主数据库的复制和更新. 假设此时我们有一个需要查询和读取Mysql最近操作DDL的信息,我们需要怎么处理? 聪明的你可能已经想到了 ...
- 参数化Insert
public void Insert(Customer item) { string sql = @"USE [WXCustomerCard]GOINSERT INTO ...
- 为什么要学习Java EE
Java EE学习之路 学习了Java SE,还只是完成“万里长征”的第一步. 接下来选择学习Java EE或是Java ME(或者你还想不断深入学习Java SE,只要你喜欢,你可以一直深入下去,就 ...
- Linux 日常常用指令
最近搞了一个阿里ECS,CentOS7,涉及到一些基本的Linux指令,在这里总结一下,在搭环境中常用的一些指令,熟悉这些指令就基本能够使用CentOS进行日常操作了. 更多的可以参考系统自带的 “ ...
- Appium实现的技巧
截图功能: //截屏并保存至本地 File screen = driver.getScreenshotAs(OutputType.FILE); File ...
- HTML5 — Wed Storage简单示例
一.Wed Storage 概述 Wed Storage功能:在Wed上储存数据的功能,这里的储存是针对客户端本地而言的. 具体分为两种: sessionStorage,将数据保存在session对象 ...