目录

一、任一元素

二、匹配特定的字符类别

1、\d  \w

三、多个元素

1、两位元素 [][]

2、* + ?

3、重复次数 {}

4、位置匹配 ^ $

5、子表达式()


一、任一元素

[]:1、[ab] 匹配a或b;

2、[0-9] 匹配任意一个数字;[a-z] 匹配任何一位小写字母;[A-Z] 匹配任何一位大写字母;

3、[a-zA-Z] 匹配任意一位大小写字母;

4、. 匹配任意一个字符;^:取反

import re
answer_zimu='aiIJ2db33c4AI'
print('字母:',re.findall('[a-z]',answer_zimu))answer_shuzi='aiIJ2db33c4AI'
print('数字:',re.findall('[0-9]',answer_shuzi))answer_str='aiIJ2db33c4AI'
print('大小写:',re.findall('[a-zA-Z]',answer_str))str1=['sales1.xls','sales2.xls','spac1.xls']
answer_str1=map(lambda x:re.findall('sales.\.xls',x),str1)  #'sales.\.xls'  \转义字符
print('.输出:',list(answer_str1))str2=['sales1.xls','sales2.xls','salesn.xls']
answer_str2=map(lambda x:re.findall('sales[^0-9]\.xls',x),str2)  #'sales[^0-9]\.xls'  \转义字符
print('取反:',list(answer_str2))字母: ['a', 'i', 'd', 'b', 'c']
数字: ['2', '3', '3', '4']
大小写: ['a', 'i', 'I', 'J', 'd', 'b', 'c', 'A', 'I']
.输出: [['sales1.xls'], ['sales2.xls'], []]
取反: [[], [], ['salesn.xls']]

二、匹配特定的字符类别

1、\d  \w

1、\d 任意一个数字[0-9];\D 任意一个非数字[^0-9];\w 任意一个数字字母下划线[a-zA-Z0-9_];

2、 \W 任意一个非字数字字母下划线;\s 匹配任意一个空白字符[\f\n\r\t\v];\S 匹配任意一个非空白字符[^\f\n\r\t\v]

import re
str=['12839','A1HY98','9okjcds','siU_U','siU U']
answer_str=map(lambda x:re.findall('\d\d\d\d\d',x),str)
print('数字:',list(answer_str))answer_str=map(lambda x:re.findall('\w\w\w\w\w\w\w',x),str)
print('六位元素:',list(answer_str))answer_str=map(lambda x:re.findall('\w\w\w\s\w',x),str)
print('空白字符:',list(answer_str))数字: [['12839'], [], [], [], []]
六位元素: [[], [], ['9okjcds'], [], []]
空白字符: [[], [], [], [], ['siU U']]

三、多个元素

1、两位元素 [][]

[][]:[a-z][0-9] 匹配a、b和c和任意一位数字

import re
str='asc99d71'
print(re.findall('[a-z][0-9]',str))
['c9', 'd7']

2、* + ?

* 零个或多个字符;+ 一个或多个字符;? 零个或一个字符

com=['http://www.ben@forta.com','httpps://www.ben@forta.com','http://www.forta@forta.com']
answer_com1=map(lambda x:re.findall('http[\w]+://[\w.]+@[\w.]+',x),com)
print('+ 输出:',list(answer_com1))answer_com2=map(lambda x:re.findall('http[\w]*://[\w.]+@[\w.]+',x),com)
print('* 输出:',list(answer_com2))answer_com3=map(lambda x:re.findall('http[\w]?://[\w.]+@[\w.]+',x),com)
print('? 输出:',list(answer_com3))+ 输出: [[], ['httpps://www.ben@forta.com'], []]
* 输出: [['http://www.ben@forta.com'], ['httpps://www.ben@forta.com'], ['http://www.forta@forta.com']]
? 输出: [['http://www.ben@forta.com'], [], ['http://www.forta@forta.com']]

3、重复次数 {}

number=['12345678910','10-6-204','1000-344-0009']
answer_num1=map(lambda x:re.findall('\d{11}',x),number)
print('11位手机号:',list(answer_num1))answer_num2=map(lambda x:re.findall('\d{0,4}-\d{1}-\d{0,4}',x),number)
print('固定范围:',list(answer_num2))answer_num3=map(lambda x:re.findall('\d{0,4}-\d{1,}-\d{0,4}',x),number)
print('至少满足:',list(answer_num3)) 11位手机号: [['12345678910'], [], []]
固定范围: [[], ['10-6-204'], []]
至少满足: [[], ['10-6-204'], ['1000-344-0009']]

4、位置匹配 ^ $

^限制开头   $限制结尾

weizhi=['12345678910','12345678910and','34455667778']
answer_wenzi1=map(lambda x:re.findall('^1\d{10}',x),weizhi)
print('^限制开头:',list(answer_wenzi1))answer_wenzi2=map(lambda x:re.findall('^1\d{10}$',x),weizhi)
print('^ $限制开头结尾:',list(answer_wenzi2))answer_wenzi3=map(lambda x:re.findall('\w+[a-z]$',x),weizhi)
print('$限制结尾:',list(answer_wenzi3))^限制开头: [['12345678910'], ['12345678910'], []]
^ $限制结尾: [['12345678910'], [], []]
^ $限制结尾: [[], ['12345678910and'], []]

5、子表达式()

当作一个独立元素来使用,()

str='<b>123</b><b>加粗字体</b><b>斜体</b>'
print('子表达式:',re.findall('<b>(.*?)</b>',str))  #去除两边的模式子表达式: ['123', '加粗字体', '斜体']

python正则表达式-正则基础相关推荐

  1. Python—正则表达式的基础知识

    文章目录 正则表达式 引入案例 python正则表达式的基础 简单函数的说明 单字符匹配规则 数量匹配规则 表示边界 匹配分组 正则表达式 正则表达式,又称规则表达式**.**(英语:Regular ...

  2. 菜鸟python 正则表达式_python基础知识(进阶篇--正则表达式)

    含义:检查一个字符串是否与某种模式匹配,由re模块提供. re.match() re.match(匹配的正则表达式,要匹配的字符串,标志位) //尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹 ...

  3. python正则表达式入门_Python正则表达式教程之一:基础篇

    前言 之前有人提了一个需求,我一看此需求用正则表达式最合适不过.考虑到之前每次使用正则表达式,都是临时抱佛脚,于是这次我就一边完成任务一边系统的学习了一遍正则表达式.主要参考PyCon2016上的一个 ...

  4. Python正则表达式初识(九)

    继续分享Python正则表达式的基础知识,今天给大家分享的特殊字符是[\u4E00-\u9FA5],这个特殊字符最好能够记下来,如果记不得的话通过百度也是可以一下子查到的. 该特殊字符是固定的写法,其 ...

  5. python正则表达式贪婪匹配_Python正则表达式教程之三:贪婪/非贪婪特性

    之前已经简单介绍了Python正则表达式的基础与捕获,那么在这一篇文章里,我将总结一下正则表达式的贪婪/非贪婪特性. 贪婪 默认情况下,正则表达式将进行贪婪匹配.所谓"贪婪",其实 ...

  6. 匹配正则_程序员入门基础:python正则表达式贪婪匹配和非贪婪匹配

    此文为python正则表达式的高阶入门,正则基础入门请参考程序员入门基础:python的正则表达式. 一.贪婪匹配和非贪婪匹配 举例说明概念: print('非贪婪匹配',re.search('el+ ...

  7. python 正则表达式取反,python正则取反_Python正则表达式-基础

    Python正则表达式-基础 python使用正则,需要先引入re模块 import re 匹配符 单个字符表达式 含义 [0-9] 0123456789任意之一 [a-z] 小写字母任意之一 [A- ...

  8. python正则匹配找到所有的浮点数_Python随笔17:Python正则表达式基础(4):贪婪匹配和最小匹配...

    Python正则表达式 贪婪匹配/最小匹配 Re库默认采用贪婪匹配,即匹配最长的子字符串.在量词后面加一个"?",即可由贪婪匹配化为最小匹配. '*'用于将前面的模式匹配0次或多次 ...

  9. 自学Python六 爬虫基础必不可少的正则

    要想做爬虫,不可避免的要用到正则表达式,如果是简单的字符串处理,类似于split,substring等等就足够了,可是涉及到比较复杂的匹配,当然是正则的天下,不过正则好像好烦人的样子,那么如何做呢,熟 ...

最新文章

  1. java中的数组_Java中的数组
  2. 简单谈一点linux内核中套接字的bind机制--数据结构以及端口确定
  3. excel最常用的八个函数_Excel最常用的几个函数,我都帮你整理好了!
  4. 遗传算法解决TSP问题 Python实现【160行以内代码】
  5. canva画图 图片居中裁剪_Canvas裁剪图片(截选框可拖拽)
  6. 在Linux环境下mysql的root密码忘记解决方法(三种)
  7. 业内大佬怒喷 Windows 10 Cloud:最大的流氓软件!
  8. PHP检测远端文件是否存在
  9. uva 1394poj 3517
  10. ice 服务java连接,java - ICE中的连接计数 - 堆栈内存溢出
  11. 网易云音乐ncm格式和QQ音乐qcm格式的学习记录
  12. 架构之美第一章-如何看到一滴水的美丽
  13. 本地方法栈与Native方法
  14. dfs——xy省赛选拔题——问题 E: 整数凑和问题
  15. 502 bad gateway原因、解决方法
  16. vue 上传图像 php处理,通过 Laravel + Vue 实现文件上传功能
  17. 在html中字怎么修改位置,css怎么设置字体位置?
  18. 微信公众号文章/菜单添加小程序时路径如何获取?
  19. 深入浅出 RequireJS
  20. 巴萨“青梅竹马”力量震惊世界 梅西小法19球占79.2%

热门文章

  1. 向量空间及其子空间的基与维数de 一些命题
  2. LED显示屏将增长 六大细分领域趋势浅谈
  3. GigE相机的IP设置
  4. 新托福写作:绝对化题型写作
  5. 最少硬币问题(最多背包问题)可以测试代码过程
  6. h5/wap端调试、移动端调试 / vconsole、eruda、spy-debugger
  7. 【LeetCode刷题】1624. 两个相同字符之间的最长子字符串
  8. 2022级sdut知到/智慧树---c语言第三章测试题解
  9. 分布式-Secur-网络 个人笔记
  10. 计算机图形学期末作业,计算机图形学期末大作业3D建模.doc