python常用的正则表达式,持续更新<<

# -*- coding: utf-8 -*-
import re

str_0 = 'Aqin1012Heheheaaaaaaahehe如何da'

def re_str(re_str_0,str_0):
    test=re.match(re_str_0, str_0)
    if test:
        print("匹配成功~")
        print(test.group(0))  # group()函数  提取以()分组的字符串  group(0):整体 group(1):第一个括号匹配部分;以此类推
    else:
        print("匹配的失败!")

# 贪婪模式:从右边(后面)开始匹配
# 非贪婪模式:从左边(前面)开始匹配  ?表示进入非贪婪模式
re_str_1='.*(he).*'
re_str_2='.*?(he).*?'
re_str(re_str_1,str_0)
re_str(re_str_2,str_0)

# ^a 表示以a开头的字符串(只匹配一次)
# . 表示任意字符(只匹配一次)
# * 表示前面的字符可以出现任意次(0/多次匹配)
# a$ 表示以a结尾的字符串(只匹配一次)

re_str_3 = '^A.*'   # 表示以'A'开头的任意字符

# 匹配函数 re.match(匹配的格式,要匹配的字符串)


# + 表示前面的字符至少出现一次
# {n} 控制前面字符的出现
# a{2} a出现至少2次
# a{3,4} a出现至少3次最多4次
# a{3,} a出现最少3次
re_str_4 = 'a.{3}a'   # 表示a与a之间有三个字符

# | 表示或,无()则对整个字符串起作用
# [] 表示其中任意 [abcd]:a/b/c/d中任意一个  [0-9]:在0-9区间内  [^字符]:非该字符
# \d 表示数字

# \A 进匹配字符串开头
# \Z 进匹配字符串结尾

re_str_5='.*(1[0-9]{10}).*'

# 常用实例
# [\u4e00-\u9fa5]:所有汉字(unicode编码)
str_1="呵呵额呵呵qqqq呵呵额呵呵"
re_str_6='[\u4e00-\u9fa5].*'
re_str(re_str_6,str_1)


# ^[1-9]\d*$
# 匹配正整数
# ^-[1-9]\d*$
# 匹配符合邮箱
# [\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
# 匹配网址
# [a-zA-z]+://[^\s]*
# 匹配国内电话号码
# \d{3}-\d{8}|\d{4}-\{7,8}
# 匹配邮政编码
# [1-9]\d{5}(?!\d)
# 匹配身份证号
# ^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$
# 匹配年月日
# ([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))

 

 今天莫名其妙地感觉不对,啥都不想说了

posted @ 2019-10-10 15:17  aqin1012  阅读(131)  评论(0编辑  收藏  举报