美文网首页
python正则表达式

python正则表达式

作者: 山高路陡 | 来源:发表于2020-07-21 12:06 被阅读0次

python正则表达式

  • 概念:对字符串的一种逻辑公式,
  • 使用规则从原字符串中提取想要的字符串
  • 应用场景:表单验证,爬虫

字符

  • 普通字符:字母,数字,汉字,下划线,语言符号,没有特殊定义的符号
    • 在匹配中只匹配与自身相同的一个字符
  • 元字符:
    • . :匹配除了换行\n以外的任意一个字符
    • [ ] :匹配字符集中的一个字符如[asfde]
    • [^] :匹配字符集以外的字符如[^asdf]
    • - :字符区间如0-9,a-z
    • \ :转义字符
    • ():对表达式进行分组,括号中的内容作为一个整体,并获取匹配的值
    • |:逻辑或操作符
  • 预定义匹配字符集
    • \d: [0-9]
    • \D:[^0-9]
    • \w:[a-zA-Z0-9_]
    • \W:[^a-zA-Z0-9_]
    • \s:空格,制表符,换页符等空白字符
    • \S:除空白字符以外的字符
  • 正则字符.png

重复匹配

  • 一个字符匹配多次,可以在匹配规则中将字符重复多次,也可以在要多次匹配的字符后使用{n}表示
  • {n}:匹配n次
  • {m,n}:m<=n,匹配的次数在m到n之间,包含m,n
  • {m,}:匹配次数大于等于m次,
  • {,n}:匹配次数小于等于n次
  • ?:相当于{0,1}匹配0次或1次
  • +:相当于{1,},至少匹配1次
  • *:相当于{0,},不限匹配次数

位置匹配和非贪婪匹配

  • 位置匹配
    • ^:从字符串开始匹配
    • $:在字符串结束的地方匹配
    • \b:匹配单词边界,
    • \B:匹配非单词边界
  • 贪婪与非贪婪模式
    • 在重复匹配时,正则默认总是尽可能多的匹配--贪婪匹配
    • 非贪婪则是尽可能少的匹配
    • (.*?):匹配 (.) 中的字符集组成的字符串0次或1次

re模块常用方法

  • re.complie(pattern[,flags])-->根据正则表达式的字符串创建模式对象,该对象可以调用匹配方法

  • re.search(pattern,string[,flags])-->在字符串中查找,从任意位置开始,返回查找到的对象

  • re.match(pattern,string[,flags])-->在字符串开始处匹配

  • re.findall(pattern,string[,flags])-->列出字符串模式中的所有匹配项

  • re.split(pattern,string[,maxsplit=0,flags])-->根据匹配模式分割字符串,返回分割后的字符串列表,maxsplit分割次数

  • re.sub(pat,repl,string[,count=0,flags])-->将字符串中所有的pat替换成repl,返回替换后的新字符串,count替换次数

  • flags参数:

    • re.A ascii字符模式
    • re.I 不区分大小写
    • re.L 做本地化识别
    • re.M 多行匹配
    • re.S 使.能够匹配所有字符
    • re.U Unicode字符集解析字符
    • re.X

分组

  • 使用()将匹配出来的字符进行二次筛选

  • .groups()返回二次筛选后组成的元组

  • .group()返回匹配到的所有字符串

  • .group(n)返回匹配到的字符串二次筛选后的第n个字符串

  • import re
    pat = 'a(.*?)a.*?f(.*?)g'
    # group()这是该规则匹配大的所有字符
    # group(1)表示第一个(.*?)匹配到的字符组成的字符串
    # groups()表示这两个(.*?)匹配到的字符串组成的元组
    

相关文章

  • 正则表达式

    Python正则表达式初识(一) Python正则表达式初识(二) Python正则表达式初识(三) Python...

  • 正则表达式

    Python:正则表达式Python:正则表达式

  • Python正则表达式指南

    Python正则表达式指南 本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • [转]python正则表达式(一) 函数使用

    原文:python | 史上最全的正则表达式 更全的正则表达式处理函数:在python中使用正则表达式(一) 0....

  • Python正则表达式

    python正则表达式

  • Python正则表达式用法详解

    搞懂Python 正则表达式用法 Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一...

  • Python正则表达式指南

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例...

  • Python处理正则表达式超时的办法

    title: Python处理正则表达式超时的办法tags: [python3, 正则表达式超时, re模块]da...

网友评论

      本文标题:python正则表达式

      本文链接:https://www.haomeiwen.com/subject/bohikktx.html