正则表达式不太会运用(待补充)

"本文介绍了正则表达式的常用语法,如d、w、.、*、+、?、[]等,并展示了如何使用正则表达式验证电子邮件地址。通过示例代码解释了如何创建一个简单的电子邮件验证函数,并给出了一个提取电子邮件用户名的功能。此外,还提供了两个测试用例以确保函数的正确性。"
摘要由CSDN通过智能技术生成

正则表达式(regular expression):

用\d可以匹配一个数字,\w可以匹配一个字母或数字

.可以匹配任意字符

用*表示任意个字符(包括0个),用+表示至少一个字符,用?表示0个或1个字符,用{n}表示n个字符,用{n,m}表示n-m个字符

用[]表示范围

A|B可以匹配A或B

^ 表示行的开头,^\d表示必须以数字开头。

$ 表示行的结束,\d$表示必须以数字结束。

不是很理解:

由于’-'是特殊字符,在正则表达式中,要用 \ 转义

作业:(未完成)

请尝试写一个验证Email地址的正则表达式。版本一应该可以验证出类似的Email:
someone@gmail.com
bill.gates@microsoft.com


# -*- coding: utf-8 -*-
import re
def is_valid_email(addr):
    re_email=re.compile(r'^[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-].@[a-zA-Z]+\.com$')
    if re_email.match(addr):
        return True

# 测试:
assert is_valid_email('someone@gmail.com')
assert is_valid_email('bill.gates@microsoft.com')
assert not is_valid_email('bob#example.com')
assert not is_valid_email('mr-bob@example.com')
print('ok')
 Run
Traceback (most recent call last):
  File "/app/main.py", line 9, in <module>
    assert is_valid_email('someone@gmail.com')
AssertionError

版本二可以提取出带名字的Email地址:
tom@voyager.org => Tom Paris
bob@example.com => bob

# -*- coding: utf-8 -*-
import re
def name_of_email(addr):
    return None

# 测试:
assert name_of_email('<Tom Paris> tom@voyager.org') == 'Tom Paris'
assert name_of_email('tom@voyager.org') == 'tom'
print('ok')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值