正则表达式,是为了方便的查询字符串中的各项数据而设定的匹配规则

使用正则表达式需要导入re模块

常用的匹配规则如下:

# 实例    描述
# .    匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。
# \d   匹配一个数字字符。等价于 [0-9]。
# \D   匹配一个非数字字符。等价于 [^0-9]。
# \s   匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
# \S   匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
# \w   匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
# \W   匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。# 实例   描述
# [Pp]ython    匹配 "Python" 或 "python"
# rub[ye]  匹配 "ruby" 或 "rube"
# [aeiou]  匹配中括号内的任意一个字母
# [0-9]    匹配任何数字。类似于 [0123456789]
# [a-z]    匹配任何小写字母
# [A-Z]    匹配任何大写字母
# [a-zA-Z0-9]  匹配任何字母及数字
# [^aeiou] 除了aeiou字母以外的所有字符
# [^0-9]   匹配除了数字外的字符

正则表达式常用的五种操作方法如下:

  import re 1 #re.match(pattern,string)    #从头匹配,如果第一个字符非数字,则无法匹配到
 2 m=re.match("\d+","123ads344dsffdf")
 3 if m:
 4     print("match:",m.group())
 5 #re.search(pattern,string)   #匹配整个字符串,直到找到一个匹配
 6 m=re.search("\d+","dsadsads32324dsa777dsd")
 7 if m:
 8     print("search:",m.group())
 9 #re.spilt()    #将匹配到的格式当做分割点对字符串分割成列表,例如下列例子中用数字拆分
10 m=re.split("\d","alex1rain2jack3eric4helen")
11 print("使用正则表达式分割字符串:",m)
12 #re.findall()    #找到所有要匹配的字符并返回列表格式
13 m=re.findall("\d","alex1rain2jack3eric4helen")
14 print("找出所有的数字:",m)
15 #re.sub(pattern,repl,string,count,flag)   #替换匹配到的字符
16 m=re.sub("\d","|","alex1rain2jack3eric4helen")
17 print("替换所有:",m)
18
19 m=re.sub("\d","|","alex1rain2jack3eric4helen",count=2)
20 print("替换两个:",m)

常用的几种格式的匹配

 1 #正则表达式含义:(1)代表所有手机号均是1开头,【3,5,8】表示第二位为这三者之一,后面紧跟九个数字,因为手机号11位
 2 m=re.search("(1)([358]\d{9})",phone_str)
 3 if m:
 4     print("匹配到的手机号是:",m.group())
 5
 6 #匹配IPV4地址
 7 ip_addr = "inet 192.168.60.223 netmask 0xffffff00 broadcast 192.168.60.255"
 8 m=re.search("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}",ip_addr)
 9 if m:
10     print("匹配到的IP地址是:",m.group())
11
12 #匹配email
13 email = "alEx.li@126.com   http://www.oldboyedu.com"
14 #正则表达式含义:[0-9.a-zA-Z]{0,26}表示长度最长为26,包含点的邮箱名;[0-9.a-z]{0,20}邮箱域名匹配;.[0-9a-z]{0,8}后缀判断
15 m=re.search(r"[0-9.a-zA-Z]{0,26}@[0-9.a-z]{0,20}.[0-9a-z]{0,8}",email)
16 if m:
17     print("Email:",m.group())

匹配电话号码,带区号

1 #匹配电话号码,类似010-11223344 或者0371-99999999
2 telphone_str="hello,0371-60668888,world,welcome !!!"
3 m=re.search(r"\(?0\d{2,3}[) -]?\d{7,8}",telphone_str)
4 print("电话号码为:",m.group())

转载于:https://www.cnblogs.com/eric8899/p/5976482.html

正则表达式的方法及其匹配规则相关推荐

  1. 万物之始正则表达式全解析三部曲(中篇)-正则表达式运算符优先级及匹配规则

    前言 各位小伙伴大家好,接下来几天时间,我会从多个角度对正则表达式进行系统阐述,让你了解正则表达式的前世今生. 该系列文章上篇 万物之始正则表达式全解析三部曲(上篇)-正则表达式基础知识及语法 以下是 ...

  2. Python3中正则表达式使用方法

    关注天善智能,走好数据之路↑↑↑登陆天善社区查看更多系列: 欢迎关注天善智能hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答.求职一站式搞定! 登陆天善社区 ...

  3. Python中使用正则表达式以及正则表达式匹配规则

    前排提要: 本博客介绍在Python下使用正则表达式从给定的字符串中获取到想要的字符串. 1 导库 import re 2 使用模板 re_pattern = re.compile(pattern, ...

  4. 正则表达式(就是一种规则)与基础爬虫匹配

    正则表达式(就是一种规则)与基础爬虫匹配 复习下之前的方法: str.startswitch("0") 判断字符串是不是以0开头 Character.isDigit(char) 判 ...

  5. Python正则表达式: 元字符/转义/分组/匹配原则/re模块属性方法大全

    正则表达式 动机 文本处理已经成为计算机常见工作之一 对文本内容的搜索,定位,提取是逻辑比较复杂的工作 为了快速方便的解决上述问题,产生了正则表达式技术 简介 定义 即文本的高级匹配模式,提供搜索,替 ...

  6. 正则表达式的学习二:正则表达式的匹配规则总结

    一.^ 和 $ 的匹配 ^once:这个模式包含一个特殊的字符^,表示该模式只匹配那些以once开头的字符串:buct$: 这个模式包含了$, 表示该模式只匹配以buct结尾的字符串:^buctser ...

  7. 正则表达式——匹配规则

    正则表达式的匹配规则是从左到右按规则匹配.我们首先来看如何使用正则表达式来做精确匹配. 对于正则表达式abc来说,它只能精确地匹配字符串"abc",不能匹配"ab&quo ...

  8. java实现行政区域划分,行政区划正则表达式匹配规则及java实现

    行政区划正则表达式匹配规则及java实现 行政区划正则表达式匹配规则及java实现 (.*?省|.*?市|.*?自治区)?(.*?市|.*?县|.*?区|.*?自治州)?(.*?县|.*?区)(.*? ...

  9. java正则匹配多个斜杠_正则表达式中两个反斜杠的匹配规则详解

    关于正则表达式raw的\匹配规则 这是我在学习中获得到的一个例子,第一表达式中匹配到的是none.于是乎我就在思考,为什么会匹配不到,假设\t被转义成一个\t,那么也应该匹配到\tsanle,而不是n ...

最新文章

  1. 【带你重拾Redis】Redis过期策略 和 内存淘汰策略(key回收)
  2. Leetcode: Reorder List
  3. 查询字符串中字母出现的个数
  4. Javascript - Jquery - 事件
  5. 学学python(4):面向对象及类,模块
  6. java安全——类加载器+字节码校验+安全管理器与访问权限
  7. 2017 百度杯丶二月场第一周WP
  8. windows下的gvim配置
  9. java 动态编译_老生常谈Java动态编译(必看篇)
  10. 网络之NSURLConnection
  11. 关于asp.net中文文件名超长的下载问题
  12. 服务器显示AL024是什么意思,云端时代云终端快速部署指南(S11AL).ppt
  13. 计算机组成原理自测题,计算机组成原理自测练习题
  14. 三星java手机播放器下载_8k视频播放器软件下载安卓-三星8k视频播放器KMPlayer下载v30.10.231 内置提取版-西西软件下载...
  15. android+action +actionform上传文件,ActionForm之文件上传
  16. 一周小结(你不要小看业务)
  17. PostGIS空间数据库SRID背景知识 - 地理坐标系(球面坐标系)和投影坐标系(平面坐标系)...
  18. Udacity数据分析(入门)-探索美国共享单车数据
  19. android 判断连接的网络是移动?联通?电信?
  20. 从mysql中查询关键字_mysql中查询常用的关键字

热门文章

  1. IFRS9名词解析汇总
  2. Flutter长图显示,自定义显示图片的指定区域
  3. 移动CRM软件是什么?有哪些功能?
  4. 移动CRM系统让销售工作更顺利展开
  5. 判定表与判定树的画法_判定表和判定树测试.ppt
  6. 水利水电工程单元工程施工质量验收评定标准
  7. NetBSD基础知识
  8. VMware安装windows 系统上提示网络上有重名的解决方法
  9. Android UncaughtExceptionHandler捕获crash的全局异常
  10. React.lazy与Suspence实现延迟加载