正则表达式

  • 前面的 *.+.? 等都是贪婪匹配,也就是说尽可能的匹配,后面加?好时其变成惰性匹配

  • 惰性匹配:<.*?>

  • 非贪婪匹配

    • *?重复任意次;但尽可能少重复

    • +? 重复一次或更多次,但尽可能少重复

    • ?? 重复0次或1次,但尽可能少重复

    • {n,m}? 重复n到m次,但尽可能少重复

    • {n,}? 重复n次以上,但仅可能少重复

  • .*?用法

    • . 任意字符

    • * 是取 0 至 无限长度

    • ? 是非贪婪模式

    • 何时一起就是,取尽量少的任意字符,一般不会这么单独写,他大多用在; .*?x, 就是取前面任意长度的字符,直到一个x出现

re 模块

re 方法

  • list findall(re,string)

  • boolean search(re,string)

  • boolean match(re,string)

  • ?P<id> 是给 分组\d+起的名字为id

  • <em .*?>(?P<id>\d+).*?<span class="title">

  • '8-25/3 + 7 /399/42998 +10 568/14' 从一个没有括号的表达式中取 */法 == 正则表达式

转义问题

re.findall(r'\\s', r'\s')

Last updated

Was this helpful?