当前位置: 首页 > news >正文

python 正则-常见题目

1、邮箱

print(re.findall(r'[\w-]+@[\w-]+\.[\w-]+', 'weidian@qq.com'))

2、身份证号

xxxxxx yyyy MM dd 375 0 十八位

	print(re.findall(r'(?:18|19|(?:[23]\d))\d{2}', '2010')) # 年print(re.findall(r'(?:0[1-9])|10|11|12', '11')) # 月print(re.findall(r'(?:[0-2][1-9])|10|20|30|31', '10')) # 日pattern = re.compile(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]")print(pattern.findall('342623198910235163'))

3、国内手机号码

#手机号都为11位,且以1开头,第二位一般为3、5、6、7、8、9 ,剩下9位任意数字
# 例如:13987692110、15610098778
print(re.findall(r'1(?:3|5|6|7|8|9)\d{9}', '15610098778')) #print(re.findall(r'1[356789]\d{9}', '15610098778')) #

4、国内固定电话

#区号34位,号码78位 例如:0511-1234567、021-87654321

print(re.findall(r'\d{3,4}-?\d{7,8}', '0511-1234567')) #print(re.findall(r'\d{3,4}-?\d{7,8}', '05111234567')) #

5、域名

pattern =   re.compile(r"(?:(?:http:\/\/)|(?:https:\/\/))?(?:[\w](?:[\w\-]{0,61}[\w])?\.)+[a-zA-Z]{2,6}(?:\/)")print(pattern.findall("Python官网的网址是https://www.python.org/"))

6、IP地址

# IP地址的长度为32位(共有2^32个IP地址),分为4段,每段8位,用十进制数字表示
# 每段数字范围为0~255,段与段之间用句点隔开 
pattern =   re.compile(r"(?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d)")print(pattern.findall("675.255.255.255"))print(pattern.findall("2.25.25.255"))print(pattern.findall("0.0.25.255"))

7、日期

常见日期格式:yyyyMMdd、yyyy-MM-dd、yyyy/MM/dd、yyyy.MM.dd
# 2013-10-01

pattern = re.compile(r"(?:(?:1\d{3})|(?:20[0-2][0-4]))[-/\.](?:0[1-9]|10|11|12)[-/\.](?:0[1-9]|1\d|2\d|3[0-1])")print(pattern.findall("出生日期是1999-11-28"))

8、密码

# 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线)
pattern = re.compile("[a-zA-Z]\w{5,17}")print(pattern.findall("密码: nlj20*_cc2042 "))

#强密码(以字母开头,必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间)

pattern = re.compile("^(?=.*[a-zA-Z])(?=.*\d)[a-zA-Z\d]{8,10}")print(pattern.findall("nlj00NLJ"))

9、中文字符

pattern = re.compile(r"[\u4e00-\u9fa5]")print(pattern.findall("apple:苹果"))

10、数字

    pattern = re.compile(r"\b[0-9]+\b")print(pattern.findall("1234 899 niu 890 009 nihih _ 9090"))# 验证n位的数字:^\d{n}$pattern = re.compile(r"\b[0-9]{3}\b")print(pattern.findall("1234 899 niu 890 009 nihih _ 9090"))# 验证至少n位数字:^\d{n,}$pattern = re.compile(r"\b\d{3,}\b")print(pattern.findall("1234 899 niu 890 009 nihih _ 9090"))# 验证m-n位的数字:^\d{m,n}$pattern = re.compile(r"\b\d{3,5}\b")print(pattern.findall("1234 899 niu 890 009 nihih _ 909000"))# 验证零和非零开头的数字:^(0|[1-9][0-9]*)$pattern = re.compile(r"\b[1-9]\d*\b") # 非0开头的数字print(pattern.findall("1234 899 niu 890 009 nihih _ 909000"))pattern = re.compile(r"\b0\d*\b") # 非0开头的数字print(pattern.findall("1234 899 niu 890 009 nihih _ 909000"))# 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$pattern = re.compile(r"\b[0-9]+(?:\.\d{2})\b") # 非0开头的数字print(pattern.findall("1234 899 niu 890.01 009 nihih _ 909000"))# 验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$pattern = re.compile(r"\b[0-9]+(?:\.\d{1,3})\b") # 非0开头的数字print(pattern.findall("1234 899 niu 890.01 009 nihih _ 909000"))# 验证非零的正整数:^\+?[1-9][0-9]*$pattern = re.compile(r"\b[1-9][0-9]*\b") # 非0开头的数字print(pattern.findall("1234 899 niu 890.01 009 nihih _ 909000"))# 验证非零的负整数:^\-[1-9][0-9]*$pattern = re.compile(r"-[1-9][0-9]*\b") # 非0开头的数字print(pattern.findall("1234 -899 niu 890.01 009 nihih _ -909000"))

11、字符串

pattern = re.compile(r"[a-zA-Z0-9]+") # 非0开头的数字print(pattern.findall("1234 -899 niu 890.01 009 nihih _ -909000"))# 长度为3-20的所有字符:^.{3,20}$pattern = re.compile(r".{3,20}\b") # 非0开头的数字print(pattern.findall("1234mn"))

12、如何匹配一个字符串中的所有包含两个连续的相同字母的单词?

matches = re.findall(r'\b(\w*(\w)\2\w*)\b', 'hello world book balloon oop')for match in matches:print(match[0])
http://www.lryc.cn/news/273004.html

相关文章:

  • 解析:Eureka的工作原理
  • RecyclerView 与 ListView 区别和使用
  • 力扣232. 用栈实现队列
  • 这个方法可以让你把图片无损放大
  • Springboot整合Elastic-job
  • VsCode的介绍和入门
  • C++:自创小游戏
  • AIGC带给开发者的冲击
  • 利用蚁剑钓鱼上线CS
  • 宣传照(私密)勿转发
  • 【Spring】19 AOP介绍及实例详解
  • ES(Elasticsearch)的基本使用
  • 【JVM面试题】Java中的静态方法为什么不能调用非静态方法
  • 对‘float16_t’的引用有歧义
  • Windows重装升级Win11系统后 恢复Mysql数据
  • MySQL之四大引擎、账号管理以及建库
  • shell编程——查找局域网内存活主机
  • python django 个人记账管理系统
  • C#的Char 结构的方法之IsLetterOrDigit()
  • 配置Docker私有仓库
  • 计算机网络-动态路由
  • 光耀未来 第一届能源电子产业创新大赛太阳能光伏赛道决赛在宜宾举行
  • 【小沐学NLP】Python实现TF-IDF算法(nltk、sklearn、jieba)
  • .cer格式证书文件和 .pfx格式证书文件有什么区别?
  • 【docker实战】安装tomcat并连接mysql数据库
  • LeetCode 每日一题 Day 32 ||递归单调栈
  • 【mars3d】FixedRoute的circle没有跟polyline贴着模型的解决方案
  • Day7 vitest 之 vitest配置第三版
  • git补充上次提交
  • 计算机网络名词解释