【Python】实验二 正则表达式

作者:康慎吾

一、实验目的

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模块在脑海中不够系统,反应不够快,需要多加练习

 

 

posted @ 2021-08-05 15:32  灰小k  阅读(699)  评论(0)    收藏  举报