1.编写验证email的正则表达式,邮箱名可以是英文字母或数字或-,_符号,邮箱后缀网址名可以是字母或数字,域名可以是com、org、edu
例如: [email protected]即为合法的email地址
(1)match()
方法判断是否匹配,如果匹配成功,返回一个Match
对象,否则返回None
。常见的判断方法就是:
test = ‘用户输入的字符串‘
if re.match(r‘正则表达式‘, test):
print(‘ok‘)
else:
print(‘failed‘)
#!usr/bin/dev python #coding:utf-8 import re email = ‘[email protected]‘ f = re.match(r‘()@().(com|edu|org)‘,email) print f
这是首先我想到的代码,然后匹配用户名
f = re.match(r‘(\w+[-\w*]*)@([\w]*).(com|edu|org)‘,email)
#预定义字符集,可以写在[...]中\d 代表[0-9], a\dc a1c\D 非数字, a\Dc abc\s 空格, a\sc a c\S 非空字符 a\Sc aSc\w 单词字符[a-zA-Z0-9] a\wc a1c,aec,aXc都可以匹配到\W 非单词字符 a\Wc a c,a#c,a^c 就可以匹配到了#数量词,可以用在字符或(...)之后。* 匹配前一个字符0或无限次+ 匹配前一个字符1或无限次? 0或1次{m} 匹配前一个字符m次 ab{2}c abbc 与预定义字符集结合起来比如 f=re.findall(r‘(\w+\s+)‘,str)就可以找到非行首的多个空格了{m,n} 匹配一个字符m至n次,at{3,4}c 就会匹配到 atttc和attttc ,而不会匹配到atc 或者 atttttc | 代表表达式两侧的任意匹配一个 2.利用随机函数产生一个用户的用户名密码,并利用文件将用户名和密码保存下来。用户名一般是8-32位的,允许包含下划线,密码通常是8-16位,允许包含特殊字符
#!usr/bin/dev pyhton #coding:utf-8 import random import hashlib runum = random.randint(8,32) print runum us = 0 usrname = ‘‘ for us in range(runum): us+= 1 rs = random.choice(‘qwertyuiopasdfghjklzxcvbnm1234567890_‘) usrname += rs print usrname pword = ‘‘ rpnum = random.randint(8,16) ps = 0 for ps in range(rpnum): ps += 1 pw = random.choice(‘[email protected]#$%^&*()-=[]\\|}{;:""?><,.\‘`~‘) pword += pw print pword
3.密码没有加密,将密码使用md5库处理,并保存。md5加密处理库import hashlibhashlib.md5(password).hexdigest()上面已经写了,如何生成随机用户名和密码,就不重新写了,只写如何保存md5.
import hashlib
md5pword = hashlib.md5(pword).hexdigest() print md5pword with open(‘usrmd5p.txt‘,‘w‘) as f: f.write(usrname) f.write(‘\n‘) f.write(pword) f.write(‘\n‘) f.write(md5pword) f.close()
4.文本处理
上个月做了一家做自然语言的公司的笔试题,我觉得题目还是有点意思的,要求如下:
- 去除所有标点符号;需要去除的标点符号是如下几种: , . ! ? : ;
- 所有数字包括小数,整数,负数都替换成一个替代字符串: ==NUMBER==
- 所有大写字母全部转成小写
- 去除每行起始的所有空格
- 连续的空格缩短为单独的空格(除每行起始连续空格,见以上规则4)
- 如果经过上述处理导致一行为空,则在此行处放置标记字符串:[REMOVED]
文本有点长,我放在网盘上了:https://pan.baidu.com/s/1o8mdXd4
h2 { margin-top: 0.46cm; margin-bottom: 0.46cm; direction: ltr; line-height: 173%; text-align: justify; page-break-inside: avoid; orphans: 0; widows: 0 }
h2.western { font-family: "DengXian Light", serif; font-size: 16pt }
h2.cjk { font-family: "DengXian Light"; font-size: 16pt }
h2.ctl { font-family: ; font-size: 16pt }
p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify; orphans: 0; widows: 0 }
时间: 2024-10-05 13:41:57