# -*-coding:utf-8 -*-
# File :frequently_usedRe.py
# Author:George
# Date : 2018/12/1
"""
    正则表达式常用实例
"""
# 用户名正则
"""
    用户名正则 要求长度为6位到12位(字母、数字、下划线、减号)
"""
namePattern = r'[a-zA-Z0-P-]{6,12}$'

# 整数匹配
# 至少一次  +
digitalPattern = r'\d+$'
# 负整数
minusPattern = r'-\d+s'
#整数
numPattern = r'-?\d+$'

# 匹配浮点数 记得给小数点.转义\
floatNum = r'-?\d+/.?\d+$'

# Email正则 允许下划线_ 横线- 和小数点 转义 @ 也要转义
EmailPattern = r'[a-zA-Z0-9_/-/.]+/@([A-Za-z0-9])+/.([a-zA-Z]{2,4})$'

# 手机号码正则
telPattern = r'(13[0-9])|(14[5|7])|(15([0-3])|(5-9))|(18[0,5,9])\d{8})$'

# 身份证号码正则
IDpattern = r'[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$'

# URL正则
URLpattern = r'[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]'

# ipv4
IPVpattern = r'(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'

# 十六进制颜色
ColorPattern = r'#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'

# 日期正则
DatePattern = r'(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)'

# QQ号码正则
QQPattern = r'^[1-9][0-9]{4,10}$'

# 微信号正则
# 6 至 20 位，以字母开头， 数字 下划线 减号 字母
WXPattern = r'^[a-zA-Z]([-_A-Za-z0-9]{5,19})$'

# 车牌号
CarPattern = r'[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]'

# 包含中文
ChinesePattern = r'^[\u4e00-\u9FA5]$'
