1. ‘?’
1.1
0-1 个字符
1.2 放在末尾,两个对等字符之间
对等字符: 所有称得上是括号的字符:左右对称 所有非括号字符: 自对称 最小对等字符匹配 比如<.*?>匹配下文 <<h1>title<h1>> 最小结果只有<h1> <h2> 顺带地,当有多个匹配结果时, m=re.search(...) m.group(N) 返回第N组括号匹配的字符。(只需要一组结果时,用m.group(1)即可) m.group() == m.group(0) == 所有匹配的字符 !! m.groups() == (m.group(1),m.group(2),...) 注意匹配的组数由模式决定!! m=re.search('[a-z](.*b)(.*c)','abcd') 有两个(...),所以匹配模式是2 即:m.group(): ('b','c') m.group(0) 'abc' m.group(1) 'b' m.group(2) 'c'
2 模式匹配
(?<= ... ) 前约束 (?= ) 后约束 例如 (?<=abc)[a-z]{3}(?=ghi) 匹配 abcdefghi 结果 def