"元字符"的笔记

什么是学习笔记?

你在学习中想写的批注、摘抄及随感。
元字符, 正则表达式 第二节 r = r"^abc" //开头为abc import re re.findall(r,'abc') //规则r匹配字符串‘abc’ ['abc'] re.findall(r,'^abc') [] 如何在规则中将元字符作为普通字符 r = r"\^abc" //^作为普通字符 re.findall(r,'^abc ^abc ^abc') ['^abc', '^abc', '^abc'] \ :加不同字符表示不同含义 也可以用于取消所有元字符 r = r"[0-9]" re.findall(r, "123456789") ['1','2', ...] r = r"\d" //与前者同 \d 匹配任何十进制数 0-9 \D匹配任何非数字字符 相当于[^0-9] \w匹配任何字母和数字字符 [a-zA-Z] \W 匹配任何非字母数字字符 [^a-zA-Z0-9] 重复 正则表达式:匹配不定长的字符集及指定一部分表达式重复次数 匹配电话号码 010-12345678 r = r"^010-\d\d\d\d\d\d\d\d" //8位 re.findall(r,'010-87654321') 正确匹配 多次重复时可以用{}表示 r = r"^010-\d{8}" // \d重复八次 *指定前一个字符可以被匹配零次或者更多次,而不是只有一次。匹配次数不超过整数界定范围 20亿 a[bcd]*b ----可以匹配abcbd r = r"ab*" //把b重复0次或者多次 re.findall(r, 'a') ['a'] // 匹配0次 + :匹配至少一次 r = r"ab+" re.findall(r, 'a') [] //至少一次 re.findall(r, 'ab') ['ab'] r = r"^010-a{8}$" //中间的 - 是可选的 如何实现 r = r"^010-*\d{8}$" re.findall(r, '01012345678') ['010...'] // *可以匹配多次 ? 表示可有可无 重复一次或者零次 + 是贪婪匹配 ?是最小匹配,值匹配一个 r = r"ab+" re.findall(r,'abbbb') ['abbbb'] 贪婪 r = r"ab+?" re.findall(r, 'abbbb') ['ab'] 非贪婪 {m,n} //至少重复m次,最多重复n次 r = r"a{1,3}" a重复1-3次 {0,} ==* {1,}==+ {0,1}==? 最好使用*+?