一、描述边界信息:

^上尖箭头从此开始,$叨乐符号以此结尾。($限定只有相应位数的数字,多出来的话就不能识别)

match方法中上尖箭头不是很明显,因为match方法就是从开头开始进行匹配的。
- vim中$符号,跳到尾部不编辑
- vim中^箭头,跳到头部不编辑
- \b要求两端是单词的起始,空格或者结束
\b尤其要注意,它不代表字符本身,前面的空格无法匹配到,前面的空格可以用“.”来占位:
>>> re.match(r"^\w+ve ", "hover")
>>> re.match(r"^\w+ve", "hover")
<_sre.SRE_Match object; span=(0, 4), match='hove'>
>>> re.match(r"^\w+\bve\b", "ho ve r")
>>> re.match(r"^\w+\bve\b", "ho ve r")
>>> re.match(r"^\w+.\bve\b", "ho ve r")
<_sre.SRE_Match object; span=(0, 5), match='ho ve'>
- \B必须为非单词边界可以匹配
必须是非单词边界,字符前面后面必须有字符,不可以是空格
>>> re.match(r"\w+.ve\B", "ho ve r")
>>> re.match(r"\w+.ve\B", "ho ver")
<_sre.SRE_Match object; span=(0, 5), match='ho ve'>
二、匹配分组:

- “|”表示的是或的意思
包含三种情况:所有的非0开头二位数|0|100
>>> re.match(r"[1-9]\d?$|0$|100$", "100")
<_sre.SRE_Match object; span=(0, 3), match='100'>
>>> re.match(r"[1-9]\d?$|0$|100$", "200")
>>> re.match(r"[1-9]\d?$|0$|100$", "0")
<_sre.SRE_Match object; span=(0, 1), match='0'>
>>> re.match(r"[1-9]\d?$|0$|100$", "90")
<_sre.SRE_Match object; span=(0, 2), match='90'>
>>> re.match(r"[1-9]\d?$|0$|100$", "75")
<_sre.SRE_Match object; span=(0, 2), match='75'>
>>> re.match(r"[1-9]\d?$|0$|100$", "05")
第二种规则:
>>> re.match(r"[1-9?\d?$|100$]", "0")
<_sre.SRE_Match object; span=(0, 1), match='0'>
[1-9]可以出现也可以不出现,如果不出现的话,后面的\d?也可以匹配到“0”
- 分组:需要提取某部分信息,这部分信息就用括号括起来。
通常来说,“ .* ”表示包含任意多个字符。
>>> re.match(r"<h1>(.*)</h1>", "<h1>匹配分组</h1>")
<_sre.SRE_Match object; span=(0, 13), match='<h1>匹配分组</h1>'>
result.group(m)代表的是匹配出来的全体,理论上是可以接收参数m的,代表的是正则表达式中第m个括号匹配出来的信息。如果m = 0,则是整个匹配出来的信息。
result.groups()拿到所有,放在元组中。
- \num引用第num个括号匹配到的字符串
>>> re.match(r"<h1>(.*)</h1>", "<h1>匹配分组</h1>")
<_sre.SRE_Match object; span=(0, 13), match='<h1>匹配分组</h1>'>
网友评论