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 [email protected]‘):根据正则表示式提供的规则对字符串进行有效的切割操作。并将结果存储到对应的列表中

----------正则表达式单字符匹配----------

.:匹配任意字符
[]:匹配[]中列举的字符
\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/

代码实现:

 1 def testFirst():
 2     #要进行处理的数据
 3     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‘
 4
 5     #strHtml=‘http://www.interoem.com/messageinfo.asp?id=35‘
 6
 7
 8     print("转化前对应的数据:%s"%strHtml)
 9
10     #进程正在表达式处理
11     result=re.findall("(http://.*?\.(com|cn)/)",strHtml)
12
13     #测试
14     #result = re.match("http://.*\.(com|cn)/",strHtml).group()
15
16     #创建一个变量,进行结果的存储
17     strResult=‘‘
18
19     #变量结果
20     for item in result:
21         strResult+=item[0]+" "
22
23     #打印出结果
24     print ("转化后对应的数据:%s"%strResult)

testOne

2、 匹配所有合法的Python标识符

实现代码:

 1 #引用对应的包
 2 import re
 3
 4 import keyword
 5
 6 #2. 匹配所有合法的Python标识符
 7 def testFive():
 8     #获取到python中关键字的列表
 9     keyList=keyword.kwlist
10
11     strKey="("+‘|‘.join(keyList)+")"
12
13     #获取待处理的数据
14     strTitle="int main str wfwfwfwfdsfstr andand ifwhile"
15
16     #打印待处理的数据
17     print("处理前的数据:%s"%strTitle)
18
19     #进行正则的处理
20     result=re.findall(strKey,strTitle)
21
22     #打印处理后的数据
23     print ("处理后的数据:%s"%str(result))

testTwo

3、匹配合法的ip地址

代码实现:

 1 引用包
 2 import re
 3
 4 #3. 匹配合法的ip地址
 5 def testSex():
 6     #接受用户输入的ip地址
 7     strTitle=raw_input("请输入要进行判断的ip地址:")
 8
 9     strRe=‘‘
10     strRe+=‘([1-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])‘#第一位
11     strRe+=‘\.‘
12     strRe+=‘([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])‘#第二位
13     strRe+=‘\.‘
14     strRe+=‘([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])‘#第三位
15     strRe+=‘\.‘
16     strRe+=‘([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$‘#第四位
17
18     #进行ip是否合法的判断
19     result=re.match(strRe,strTitle)
20
21     if result==None:
22         print("匹配失败!")
23     else:
24         print("匹配成功!")

testThree

时间: 2024-12-06 16:44:44

python正则表达式手记的相关文章

Python正则表达式Regular Expression基本用法

资料来源:http://blog.csdn.net/whycadi/article/details/2011046   直接从网上资料转载过来,作为自己的参考.这个写的很清楚.先拿来看看. 1.正则表达式re模块的基本函数. (1)findall函数的用法 findall(rule,target[,flag])是在目标字符串中找到符合规则的字符串.参数说明:rule表示规则,target表示目标字符串,[,flag]表示的是规则选项.返回的结果是一个列表.若没找到符合的,是一个空列表. 如: 因

python正则表达式re

1. 正则表达式简介 正则表达式并不是Python的一部分.在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别 只在于不同的编程语言实现支持的语法数量不同:但不被支持的语法通常是不常用的部分.python正则表 达式是用于文本匹配的强大工具,在源字符串中查找与给定的正则表达式相匹配的部分.一个正则表达式 是由字母.数字和特殊字符(括号.星号和问号等)组成. 正则表达式中的特殊字符:^      正则表达式的开始字符$      正则表达式的结束字符\w     匹配字母.数字.下划线,

python正则表达式详解

python正则表达式详解 正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能不一样,不过只要学会了任意一门语言的正则表达式用法,其他语言中大部分也只是换了个函数的名称而已,本质都是一样的.下面,我来介绍一下python中的正则表达式是怎么使用的. 首先,python中的正则表达式大致分为以下几部分: 元字符 模式 函数 re 内置对象用法 分组用

python正则表达式

本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程. 注意:本文基于Python2.4完成:如果看到不明白的词汇请记得百度谷歌或维基,whatever. 尊重作者的劳动,转载请注明作者及原文地址 >.<html 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法

python 正则表达式基础

又一段时间没写博客了 最近一段时间在写pygame 又忽略了博客 今天因要帮朋友修改电影字幕 用到了正则表达式 重新学了一遍 发现还是得多练 才能算渐渐掌握 python 正则表达式 1.1介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大.得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同:但不用担心,不被支持

python正则表达式-findall

python正则表达式-findall #coding=utf-8 import re ''' # 获取匹配的的内容 ''' p = re.compile(r'\d+') print '找出所有的数字',p.findall('one1two2three3four4') ''' # 获取匹配的的内容-比较复杂的例子 ''' unicodePage ='<div class="content" title="2015-02-22 00:08:46">i am

Python正则表达式 re(regular expression)

1. 点. .: 代表一个字符 (这个跟linux的正则表达式是不同的,那里.代表的是后面字符的一次或0次出现) 2. 转义 \\ 或者 r'\': 如 r'python\.org' (对.符号的转义) 3. ^ 非或叫做排除 如[^abc]: 任何以非a,b,c的字符 4. | 选择符 如python|perl (从python和perl选择一个) 也可以: p(ython|erl) 5. ? 可选项 如: r'(http://)?(www\.)?python\.org' (http://和w

[ Python ] 正则表达式(1)

[ Python ] 正则表达式(1) 概念区分:搜索 ( Search ) 和 匹配 ( Match ) from re import search, match search("nana", "banana") # Search succeeds! search("bana", "banana") # Search succeeds! match("nana", "banana")

Python正则表达式指南

本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程. 注意:本文基于Python2.4完成:如果看到不明白的词汇请记得百度谷歌或维基,whatever. 尊重作者的劳动,转载请注明作者及原文地址 >.< [原文链接]http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 1. 正则表