美文网首页
关于python正则表达式的补充

关于python正则表达式的补充

作者: 不分享的知识毫无意义 | 来源:发表于2019-12-08 16:42 被阅读0次

1.贪婪匹配和非贪婪匹配

  • 贪婪匹配:顾名思义,贪婪,匹配满足条件越多越好
  • 非贪婪匹配,相反,匹配满足条件越少越好
    python默认是贪婪匹配,要想不贪在量词后面加个?警告就好了。
    举个栗子
s1 = 'abcd我123'
re.findall('[a-z]+',s1)
输出:['abcd']
re.findall('[a-z]+?',s1)
输出:['a', 'b', 'c', 'd']

2.()带来的误区

  • 没有括号
    没有括号很简单,你写的啥匹配啥
  • 一个括号
    整个正则表达式都去匹配,但是只输出括号里的东西
  • 两个括号
    输出一个list,list里的内容是tuple,包含了所有匹配结果和第一个括号里的匹配结果。
    举个栗子(虽然很不想,因为太简单)
string="2345  3456  4567  5678"
regex2 = re.compile("\w+\s+\w+")
输出:['2345  3456', '4567  5678']
regex2 = re.compile("(\w+)\s+\w+")
输出:['2345', '4567']
regex2=re.compile("((\w+)\s+\w+)")
regex2.findall(string)
输出:[('2345  3456', '2345'), ('4567  5678', '4567')]

3.分组

正则的分组是一个比较神奇的概念,一般是在re.match()中用到,分组代表匹配到的第几个结果。使用group[0-n]能获得匹配的第0-n个结果。我通常嫌这个麻烦,一般都用findall。
举个栗子

s='<div><a href="https://support.google.com/chrome/?p=ui_hotword_search" target="_blank">更多</a><p>dfsl</p></div>'
re.match(r'.*<a.*>(.*)</a>',s)
输出:<re.Match object; span=(0, 92), match='<div><a href="https://support.google.com/chrome/?>'
是得不到你要的东西的
re.match(r'.*<a.*>(.*)</a>',s).group()
输出:<re.Match object; span=(0, 92), match='<div><a href="https://support.google.com/chrome/?>'
整个正则表达式被当为第一组的内容啦,group里有没有0都是整个正则表达式的匹配。
re.match(r'.*<a.*>(.*)</a>',s).group()
输出:'更多'

4.断言

  • (?:)
    用的最多,括号里的东西匹配上了但不输出,用的时候好好看看你的正则表达式和括号分组结合起来用,才能达到想要的正则效果。
  • (?<=pattern)
    以某个东西开头的匹配,括号里的东西不输出
  • (?!=pattern)
    不是以某个东西开头的东西,括号里的东西不输出
  • (?=pattern)
    以某个东西结尾的匹配,括号里的东西不输出
    -(?!=pattern)
    不以某个东西结尾的匹配,括号里的东西不输出
    这个东西也不是不好理解,那个例子先欠着,后续补上。

5.正则 命名

后续补充吧,目前还没用上。

相关文章

  • 关于python正则表达式的补充

    1.贪婪匹配和非贪婪匹配 贪婪匹配:顾名思义,贪婪,匹配满足条件越多越好 非贪婪匹配,相反,匹配满足条件越少越好p...

  • 正则表达式

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

  • 2018-09-11 day17-正则表达式

    正则表达式 python关于正则的支持 提供内置模块re fullmatch(正则表达式, 字符串) - 判断字符...

  • 正则表达式

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

  • Python正则表达式指南

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

  • python --正则表达式-re模块

    所有关于正则表达式的操作都使用 python 标准库中的 re 模块。 Python中的re模块 re.compi...

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

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

  • python正则表达式

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

  • 正则表达式学习笔记(一)

    参考书籍:《正则指引》(1-3章) 以 Python 语言为学习工具,Python中常用的关于正则表达式的函数是 ...

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

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

网友评论

      本文标题:关于python正则表达式的补充

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