作者:康慎吾

工作地点:北华航天工业学院

一、实验目的

1、掌握元字符的使用方法。

2、理解正则表达式re模块。

二、实验环境

计算机及Python3.X和Pycharm软件。

三、实验内容与要求

1、匹配网址

有一批网址:

http://www.interoem.com/messageinfo.asp?id=35http://3995503.com/class/class09/news_show.asp?id=14http://lib.wzmc.edu.cn/news/onews.asp?id=769http://www.zy-ls.com/alfx.asp?newsid=377&id=6http://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/

源代码:

import re
print(\'第一题:\')
pattern1 = r\'http://.*?/\'
example1 = \'\'\'
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
\'\'\'
result1 = re.findall(pattern1,example1)
for i in result1:
    print(i)

运行结果:

2、匹配合法的ip地址

格式为:pattern=’正则表达式’         

example=input(‘请输入一个IP地址’)         

print(re.findall(pattern,example))

源代码:

import re
print(\'第二题:\')
pattern2 = r"(25[0-5]\.|2[0-4]\d\.|1?\d?\d\.){3}(25[0-5]$|2[0-4]\d$|1?\d?\d$)"
while True:
    example2 = input("请输入一个IP地址:")
    result2 = re.match(pattern2, example2)
    if result2 == None:
        print(\'警告!ip地址不合法,请输入合法的IP地址!\')
        continue
    else:
        print()
        print(result2.group())
        break

运行结果:

3、匹配所有合法的电子邮件地址(格式如上)

<用户名>@<电子邮件服务器名>

用户名:只允许数字、字母、下划线( _ ),且开头只能是数字或字母。

电子邮件服务器名:只允许数字、字母、小数点( . ),且开头只能是数字或字母。

后缀:.ac|.com|.goc|.edu|.net|.org任意结尾

源代码:

import re
print(\'第三题\')
pattern3 = r"[0-9 a-z A-Z]\w*@[0-9 a-z A-Z][0-9 A-Z a-z \.]*\.(ac|com|goc|edu|net|org)$"
while True:
    example3 = input(\'请输入用户名:\')
    result3 = re.match(pattern3,example3)
    if result3 == None:
        print(\'请输入正确邮箱!\')
        continue
    else:
        print(result3.group())
        break

运行结果:

4、打开test.txt文本,将里边得文本使用正则表达式筛选出数字,再存入test1.txt文件中。

存入test1.txt文本内容格式为:    29384845
223444444422
323455111

源代码:

import re
print(\'第四题\')
file=open(\'实验二 test.txt\',\'r+\',encoding=\'utf-8\')
file.writelines("\n")
line1=re.findall(r\'\d\',file.readline())
line2=re.findall(r\'\d\',file.readline())
line3=re.findall(r\'\d\',file.readline())
for i in line1:
    file.write(i)
file.writelines("\n")
for i in line2:
    file.write(i)
file.writelines("\n")
for i in line3:
    file.write(i)
file.close()

file=open(\'实验二 test.txt\',\'r+\',encoding=\'utf-8\')
print(file.read())
file.close()

运行结果:

四、实验过程

 详见

五、实验总结

  1. 基本掌握了元字符的使用方法,还需要时常复习。
  2. 理解了正则表达式re模块,并做了相应的练习。
  3. 通过做实验敲代码查漏补缺了上课没有跟上的知识点,并对正则表达式的应用有了跟深层的理解。
  4. 感觉各种符号和re模块在脑海中不够系统,反应不够快,需要多加练习

 

 

版权声明:本文为kangshenwu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/kangshenwu/p/15103576.html