分享

Python正则表达式精确匹配手机号,邮箱,IP,身份证…..(爬虫利器)

 xiaoyimin 2019-07-17

Python正则表达式大全

1.检验手机号

要求:手机号码必须为11位数字,以1开头,第二位为1或5或8。

import re

def verify_mobile():

mob = input('请输入手机号码:')

ret = re.match(r'1[358]d{9}', mob)

if ret:

print('手机号码匹配正确')

else:

print('匹配错误')

verify_mobile()

2.检验邮箱

import re

def verify_email():

email = input('请输入邮箱:')

ret = re.match(r'^[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+){0,4}@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+){0,4}$', email)

if ret:

print('邮箱匹配正确')

else:

print('匹配错误')

verify_email()

3.验证身份证

import re

def verify_card():

card = input('请输入身份证:')

ret = re.match(r'^([1-9]d{5}[12]d{3}(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])d{3}(d|X|x))$', card)

if ret:

print('身份证匹配正确')

else:

print('匹配错误')

verify_card()

4.检验年月日

import re

def verify_date():

date = input('请输入年月日:')

ret = re.match(r'^(d{4}-d{1,2}-d{1,2})$', date)

if ret:

print('日期匹配正确')

else:

print('匹配错误')

verify_date()

5.验证数字表达式

匹配数字:^[0-9]*$

匹配n位的数字:^d{n}$

匹配零和非零开头的数字:^(0|[1-9][0-9]*)$

匹配正数、负数、和小数:^(-|+)?d+(.d+)?$

匹配非零的正整数:^[1-9]d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^+?[1-9][0-9]*$

匹配非零的负整数:^-[1-9][]0-9″*$ 或 ^-[1-9]d*$

匹配非负整数:^d+$ 或 ^[1-9]d*|0$

匹配非正整数:^-[1-9]d*|0$ 或 ^((-d+)|(0+))$

匹配浮点数:^(-?d+)(.d+)?$ 或 ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$

匹配正浮点数:^[1-9]d*.d*|0.d*[1-9]d*$

匹配负浮点数:^-([1-9]d*.d*|0.d*[1-9]d*)$

匹配非正浮点数:^((-d+(.d+)?)|(0+(.0+)?))$

匹配非负浮点数:^d+(.d+)?$ 或 ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$

6.验证字符表达式

匹配汉字:^[一-龥]{0,}$

匹配英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$

匹配大写英文字母组成的字符串:^[A-Z]+$

匹配小写英文字母组成的字符串:^[a-z]+$

匹配大小写英文组成的字符串:^[A-Za-z]+$

匹配中文、英文、数字包括下划线:^[一-龥A-Za-z0-9_]+$

禁止输入含有~的字符:[^~x22]+x

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多