美文网首页
Day17 贪婪、非贪婪、re模块

Day17 贪婪、非贪婪、re模块

作者: ququququ | 来源:发表于2019-01-16 17:19 被阅读0次

一、贪婪和非贪婪

非贪婪:

在正则表达式中控制匹配不确定次数的符号后边可以加?,来表示尽可能少的匹配

在贪婪的时候,匹配是尽可能多的匹配。

注意:尽可能少是在能够匹配到的前提下尽可能少

以下都是贪婪匹配:

- *
- +
- ?
- {M,N}
- {M,}
- {,N}

import re

a = re.findall(r"a(\d+?)", 'a23b')
print(a) # ['2']
b = re.findall(r"a(\d+)", 'a23b')
print(b) # ['23']
    

二、re模块

1、complie(正则表达式)

将正则表达式转换成对象,编译后直接调用对象方法

2、fullmatch(正则表达式, 字符串)

正则表达式和字符串匹配,匹配成功返回对象,失败返回None。用途:检测账号,密码等

import re
    re_str = r'(\d\d)\.([a-z]+)'
    result = re.fullmatch(re_str, '12.adsf')

返回对象

a、span()

匹配到字符串在原字符串中的下标范围(结果是元祖)

b、star()和end()

匹配到的字符串在元字符中的开始下标和结束下标

c、group()

获取匹配到的字符串(结果是字符串)

d、string

获取原字符串

3、match(正则表达式, 字符串)

让字符串的开头和正则表达式匹配,匹配成功结果是匹配对象,否则是None

4、search(正则表达式, 字符串)

在字符串中匹配出一个符合正则表达式的子串,匹配成功结果是对象,否则是None

5、split(正则表达式, 字符串)

将字符串按照满足正则要求的子串进行切割(返回值是列表)

6、sub(正则表达式, 字符串1, 字符串2)

将字符串2中能够和正则表达式匹配的子串替换成字符串1,产生一个新的字符串

7、findall(正则表达式, 字符串)

在字符串中获取满足正则表达式的所有字符串(结果是列表)

注意:如果正则表达式有分组,直接获取到的是分组中匹配到的内容;如果有多个分组列表中的元素是元祖

8、finditer(正则表达式, 字符串)

在字符串中获取满足正则表达式的所有的子串(结果是迭代器)

9、re.I

匹配的时候忽略大小写,匹配的约束条件是放在flags参数中的。

print(re.fullmatch(r'[a-z]{2}', 'SA', re.I))

相关文章

  • Day17 贪婪、非贪婪、re模块

    一、贪婪和非贪婪 非贪婪: 在正则表达式中控制匹配不确定次数的符号后边可以加?,来表示尽可能少的匹配。 在贪婪的时...

  • Python 高级 8正则表达式

    正则表达式、re模块、匹配单个字符、匹配多个字符、匹配开头结尾、匹配分组、re模块的高级用法、python贪婪和非...

  • python re正则总结

    1. re基础 1.1 正则在不同的语言中有区别,但是大部分是通用的 1.2 贪婪和非贪婪(默认是贪婪的)开启非贪...

  • 贪婪非贪婪

  • 正则表达式

    正则表达式 (?P .*)提取字符串re.M,re.S,贪婪,非贪婪正则表达式,html标签 提取Python正则...

  • 贪婪与非贪婪

    abcdefgdogcat 贪婪,就是尽可能多的匹配。例如 a.*d匹配的就是abcdefgd,如果后面还有那么匹...

  • 正则表达式高级使用

    一,贪婪与非贪婪 贪婪:尽可能多的匹配 非贪婪:尽可能少的匹配 非贪婪符可以用在*,?,+的后面 *? 重复1次 ...

  • 贪婪与非贪婪匹配

    1.什么是正则表达式的贪婪与非贪婪匹配 贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使...

  • 正则表达式:贪婪匹配与非贪婪匹配

    贪婪匹配 贪婪匹配:在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配 非贪婪匹配 非贪婪匹配:在满足匹...

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

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

网友评论

      本文标题:Day17 贪婪、非贪婪、re模块

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