一 . 正则表达式 匹配字符串

  元字符
  . 除了换行
  \w 数字, 字母, 下划线
  \d 数字
  \s 空白符
  \n
  \t
  \b 单词的边界
  \W 非xxx
  \D
  \S
  [ ] 字符组 or的关系
  [^xxx] 非xxxx
  ^ 字符串的开始
  $ 字符串的结束
  | 或者   ' ' 啥都能匹配
量词
  * 0->n
  + 1->n
  ? 0->1
  {p} p次
  {p,q} p->q次
  {p,} 至少p次 贪婪和惰性
  .*
  .+
  惰性:
  .*?宝宝 尽可能少的匹配 转义 \\\\n => \\n => \n
  正则前面加r 分组 ()

二 . 在python中使用正则. re

  (?P<name>正则)
  1. search() 搜索. 搜索到第一个结果返回

import re
# search 搜索, 查找
# 一旦匹配到结果. 直接返回, 如果匹配不到结果. 返回None
result = re.search("\d+", "宝宝45的电话是123")
print(result) # <_sre.SRE_Match object; span=(6, 9), match='123'>
print(result.group()) #

  2. match() 匹配. 收到一个结果返回. 从头开始匹配

import re
# 匹配, 从头开始匹配. 相当于在你正则前面加了一个^
result = re.match("\d+", "434宝宝的电话是:")
print(result.group()) #
# search和match的区别:  search查找. 找到了结果就返回. match. 从头开始匹配.

  3. findall() 查找所有匹配结果

import re
result = re.findall("\d+", "baby的电话号是: 185123456789")
print(result) # ['185123456789']

  4. finditer() 返回迭代器.

import re
it = re.finditer("\d+", "baby123456789的电话号是: 185123456789")
for el in it:
print(el.group()) # 分组 123456789 185123456789

  5. compile() 编译
  6. group("name") 获取数据
  7. re.S 干掉 . 的换行

最新文章

  1. How to realize the double os in the win8 background.
  2. 本学期3个sprint的团队贡献分
  3. gulp入坑系列(2)——初试JS代码合并与压缩
  4. Ubuntu/linux 安装 kernel-devel
  5. spring容器IOC创建对象&lt;二&gt;
  6. XUtils解析
  7. MATLAB GUI程序设计中ListBox控件在运行期间消失的原因及解决方法
  8. Java类型
  9. event事件:
  10. 2026-Keroro侵略地球
  11. QWidget QMainWindow QDialog 三者区别
  12. sql server identity限制
  13. iOS摄像头和相册-UIImagePickerController-浅析(转)
  14. 使用自定义类型做qmap,qhash的key
  15. 利用指针突破C++编译器的防线
  16. 字符设备驱动4: ioremap
  17. 使用Pushlet来实现服务器端向客户端推送信息
  18. 实践作业2:黑盒测试实践——安装配置测试工具 Day 3
  19. 关于Mysql DATE_FORMAT() 日期格式
  20. ubuntu安装qq教程

热门文章

  1. 局域网下Android与scoket通信的实现
  2. Python中的单例模式——装饰器实现剖析
  3. 【vue】使用el-table时,实现批量选中效果
  4. 8.oop-多态
  5. linux运行级别和开机流程
  6. node.js使用express框架进行文件上传
  7. 【转】深入理解Java:注解(Annotation)--注解处理器
  8. Luogu P1776 宝物筛选_NOI导刊2010提高(02)(多重背包模版)
  9. 【mongoDB查询进阶】聚合管道(二) -- 阶段操作符
  10. java 变量 final 小结