`
hgfghwq27
  • 浏览: 43207 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类

Python核心编程之正则表达式-练习题解答

 
阅读更多

  1. 识别下列字符串:"bat," "bit," "but," "hat," "hit," 或 "hut"   import re data=r'but,' patt='b.t,?' m=re.search(patt, data) if m is not None: print m.group()  2.匹配用一个空格分隔的任意一对单词,比如,名和姓     patt='\S+\s\S+'  3. 匹配用一个逗号和一个空格分开的一个单词和一个字母。例如,英文人名中的姓和名 的首字母       patt='\S+,\s\S'  4. 匹配所有合法的Python标识符    patt='\W'  5.请根据您(读者)本地关于地址的格式写法匹配一个街道地址(你写出的正则表达式要 尽可能通用以匹配任意数目的表示街道名字的单词,
  包括类型指示)。比如,美国的街道地址使用这 样的格式:1180 Bordeaux Drive. 
  使你写的正则表达式尽可能通用,要求能够匹配多个单词的街道 名字,
  如:3120 De la Cruz Boulevard.      patt='(\d+\s?)+(\S+\s?)+'  6.匹配简单的以"www."开头,以".com"作结尾的Web域名,例如:www.yahoo.com.
  附 加题:使你写的正则表达式还支持其他顶级域名:.edu, .net 等,比如:www.ucsc.edu.      patt='^www\.(\S+)\.?[com|edu|cn]
  7.匹配全体Python整数的字符串表示形式的集合     patt='\d+'  8. 匹配全体Python长整数的字符串表示形式的集合    patt='\d+[L]?'  9. 匹配全体Python浮点数的字符串表示形式的集合 patt='\d+\.\d+'  10.匹配全体Python复数的字符串表示形式的集合     patt='[\d+|\d+\.\d+]+[\d+|\d+\.\d+]j'  11.匹配所有合法的电子邮件地址(先写出一个限制比较宽松的正则表达式,然后尽可能加 强限制条件,但要保证功能的正确性)。  patt='\w+@(\w+\.)+com'  12.匹配所有合法的 Web 网站地址(URLs)(先写出一个限制比较宽松的正则表达式,然后尽可能加强限制条件,但要保证功能的正确性)。 patt='www\.(\w+\.)+(\w+)'  13.type(). type()内建函数返回一个对象类型,此对象显示为 Python 的字符串形式, 
  如下所示:   
  >>> type(0)  
    
  >>> type(.34)  
    
  >>> type(dir)  
    
  请写一个正则表达式,能从这个字符串中提取出类型的名字。 你的函数能实现以下功能:如 
  果以字符串""做输入,会返回类型"int".(返回其他类型也同理,如,返回类型'float',  
  'builtin_function_or_method'等) 提示:正确的结果保存在类和某些内建类型的__name__属性 里。   import re data="" patt="" m=re.search(patt, data) if m is not None: print m.group(1)  14.正则表达式。在 15.2 小节里,我们给出一个匹配由一位或两位数字代表一月到九月的 字符串形式("0?[1-9]")。 请写出一个正则表达式    表示标准日历上其它的三个月(十月、十一月、 十二月)。   patt="1[0-2]"  15.正则表达式。在15.2小节里,我们给出一个匹配信用卡卡号的模式:("[0-9]{15,16}").  
  但这个模式不允许用连字符号分割信用卡卡号中的数字。请写出一个允许使用连字符的正则表达式, 
  但要求连字符必须出现在正确的位置。例如,15位的信用卡卡号的格式是4-6-5,表示四个数字,一 
  个连字符,后面接六个数字、一个连字符,最后是五个数字。16位的信用卡卡号的格式是4-4-4-4, 数位不足时,添0补位。 patt="([0-9]{4}-?[0-9]{6}-?[0-9]{5})|([0-9]{4}-?[0 -9]{4}-?[0-9]{4}-[0-9]{4})"  16.修改脚本 gendata.py 的代码,使数据直接写入文件 redata.txt 中,而不是输出到屏 幕上。   ''' Created on 2010-12-11 @author: Administrator ''' from random import randint,choice from string import lowercase from sys import maxint from time import ctime doms=('com','edu','net','org','gov') dtstr='' for i in range(randint(5,10)): dtint=randint(0,maxint-1) dtstr+=ctime(dtint) shorter=randint(4,7) em='' for j in range(shorter): em+=choice(lowercase) longer=randint(shorter,12) dn='' for j in range(longer): dn+=choice(lowercase) t= '%s::%s@%s.%s::%d-%d-%d' %(dtstr,em,dn,choice(doms),dtint,shorter,longer) print t f=open('redata.txt','a') f.write(t) f.close()   18.通过检查每个输出行中整数字段部分的第一个整数是否和该行开头的时间戳相匹配来 验证redata.txt中的数据是否完好 patt='(\d+)\d+{3}'  17.统计生成的redata.txt文件中,星期中的每一天出现的次数(或统计各月份出现的次 数)。   import re patt='Jun' f=open('redata.txt','r') count=0 for eachLine in f.readlines(): m=re.findall('Jun', eachLine) count+=len(m) print len(m) #print data print 'the count of :%s is %d' %(patt,count)   18.通过检查每个输出行中整数字段部分的第一个整数是否和该行开头的时间戳相匹配来 验证redata.txt中的数据是否完好 patt='(\d+)\d+{3}'  19. 提取出每行中完整的时间戳字段 patt='\s\d+{2}:\d+{2}:\d+{2}\s'  20.提取出每行中完整的电子邮件地址。 patt='\w+@\w+\.\w+'  21.只提取出时间戳字段中的月份。 patt=':(\d+):'  22.只提取出时间戳字段中的年份 patt='\s(\d+)
  23.只提取出时间戳字段中的值(格式:HH:MM:SS)。 patt='\s\d+:\d+:\d+\s'  24.只从电子邮件地址中提取出登录名和域名(包括主域名和顶级域名,二者连在一起) patt='(\w+)@(\w+\.?\w+)'  25.只从电子邮件地址中提取出登录名和域名(包括主域名和顶级域名,二者分别提取)。 patt='(\w+)@(\w+\.?\w+)'  26. 将每行中的电子邮件地址替换为你自己的电子邮件地址 import re patt='(\w+@\w+\.?\w+)' f=open('redata.txt','r') for eachLine in f.readlines(): #print eachLine m=re.sub(patt, 'wangtao0422@gmail.com', eachLine) if m is not None: print m  27.提取出时间戳中的月、日、年,并按照格式"月 日,年"显示出来,且每行仅遍 历一次 import re patt='(\S+)\s(\d+)\s\d+:\d+:\d+\s(\d+)






f=open('redata.txt','r') for eachLine in f.readlines(): #print eachLine m=re.search(patt,eachLine) if m is not None: print m.groups()  28.区号(第一组的三个数字和它后面的连字符)是可选的,即,你写的正则表达式对 800-555-1212和555-1212都可以匹配 patt='(\d{3}-)?\d{3}-\d{4}'  29.区号中可以包含圆括号或是连字符,而且它们是可选的,就是说你写的正则表达式可以 匹配800-555-1212, 或
  555-1212, 或(800) 555-1212 patt='\(?\d{3}-?\)?\d{3}-\d{4}' 
分享到:
评论

相关推荐

    python之常用正则表达式.pdf

    python之常用正则表达式.pdfpython之常用正则表达式.pdfpython之常用正则表达式.pdfpython之常用正则表达式.pdfpython之常用正则表达式.pdfpython之常用正则表达式.pdf

    Python培训基础入门教程-正则表达式-讲解全面 共29页.pdf

    Python正则表达式基础知识点总结 正则表达式(Regular Expression,缩写为RE)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在 Python 中,正则表达式是处理文本和数据的重要工具。 知识...

    常用java正则表达式

    如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...

    Python程序设计:正则表达式检索与替换.pptx

    正则表达式是一个特殊的字符序列,它能方便的检查一个字符串是否与某种模式匹配,利用正则可以快速准确的对邮箱进行校验。 任务 邮箱验证 任务知识点 正则表达式概念与语法 常用匹配规则 正则表达式检索与替换 知识...

    Python正则表达式指南.docx

    Python 正则表达式指南是 Python 编程语言中对正则表达式的支持,包括正则表达式基础和 Python 正则表达式标准库的完整介绍及使用示例。 1. 正则表达式基础 正则表达式是一种强大的字符串处理工具,拥有自己独特的...

    正则表达式的词法分析程序

    (1)C++源代码扫描程序识别C++记号。 C++语言包含了几种类型的记号:标识符,关键字,数(包括整数、浮点数),字符串、注释、特殊符号(分界符)和运算符号等。 (2)打开一个C++源文件,打印出所有以上的记号。...

    正则表达式---Python程序设计1

    第三章 正则表达式本章导读字符串是程序设计中经常涉及的数据结构,而正则表达式是字符串处理的重要手段,其设计思想是用一种描述语言定义规则,凡符合规则的字符串,可认

    python正则表达式_深入浅出

    python正则表达式_深入浅出 python正则表达式_深入浅出

    python正则表达式全部方法

    一个描述全部python正则方法,正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。 ...

    python-数字正则表达式.docx

    python 数字正则表达式 Python数字正则表达式 正则表达式是一种强大的文本处理工具,它可以用来匹配、查找、替换文本中的特定模式。在Python中,正则表达式模块re提供了一组函数,可以用来处理字符串中的正则表达式...

    python字符串与正则表达式课件

    该ppt为python字符串与正则表达式的相关课件,感觉还不错,需要的可以下来看看

    10.4、正则匹配-正则表达式 Regular Expression(四).mp4

    Python零基础10天进阶班【10正则匹配-正则表达式 Regular Expression、树形模型(树形匹配)-intro bs4、爬虫】

    python字符串与正则表达式.pdf

    python字符串与正则表达式

    Python基础入门知识之正则表达式学习 正则表达式30分钟入门教程 共21页.pdf

    三、 正则表达式到底是什么东西? 3 四、 入门 4 五、 测试正则表达式 6 六、 元字符 7 七、 字符转义 9 八、 重复 9 九、 字符类 9 十、 分枝条件 10 十一、 分组 11 十二、 反义 12 十三、 后向引用 12 十四、 零...

    “正则表达式以及python re模块”演讲PPT

    PPT 讲述了正则表达式的使用方式以及如何使用python来操作正则表达式,内容简洁实用,适合平时查询,也适合PPT演讲使用~

    06-正则表达式(python和linux高级编程阶段 代码和截图)

    06-正则表达式(python和linux高级编程阶段 代码和截图)06-正则表达式(python和linux高级编程阶段 代码和截图)06-正则表达式(python和linux高级编程阶段 代码和截图)06-正则表达式(python和linux高级编程阶段 ...

    第11.25节 Python正则表达式编译re.compile及正则对象使用.rar

    第11.25节 Python正则表达式编译re.compile及正则对象使用.rar

    Python-24-正则表达式.md

    Python-24-正则表达式.md

    Python正则表达式标准库使用教程.pdf

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则表达式,这些主题请查看其他教程。   ...

    Shell与Python正则表达式参考

    Shell与Python正则表达式参考 正则表达式(RE)是一些由字符和特殊符号组成的字符串,它们描述了这些字符和字符的某种重复方式,因此能按某种模式匹配一个有相似特征的字符串的集合,简单地说,正则表达式就是用在字符...

Global site tag (gtag.js) - Google Analytics