正则表达式:是一个特殊的字符序列,利用事先定义好的一些特定字符以及他们的组合组成一个“规则”,检查一个字符串是否与这种规则匹配来实现对字符的过滤或匹配。
python中,re模块提供了正则表达式操作所需要的功能。
字符串前加r,表明对字符串不进行转义
re模块中findall()方法 以列表形式返回所有能匹配的子串。(如果没有则返回空列表)
元字符:有些字符比较特殊,他们和自身并不匹配,而是表明应和一些特殊的东西匹配,或者会影响重复次数。这些特殊的字符,称为元字符。
元字符:
“ . ” 表示除换行符外的任意字符。
“ \S ” 表示不是空白符的任意字符。
“【】”:指定字符集。
“ …… ” (上箭头,shift 6)匹配行首,以该字符后面字符开头的字符串。
“¥” (美元符号,shift 4 )匹配行尾,以该符号之前字符结束的字符串。
【……】表示补集,匹配不在区间范围的字符。
“ \ ” 加其他。
\b :匹配单词头或单词尾。
\B :与之相反匹配 非 单词头或单词尾。
\d :匹配任何十进制数(相当于【0-9】)
\D:与之相反 相当于【……0-9】(上面的补集)
\s :匹配任何空白字符,相当于【\t\n\r\f\v】;
\S :与之相反 匹配任何空白字符。
\w :匹配任何字母,数字,下划线字符,想当于【a-zA-Z0-9】;
\W:与之相反,匹配任何非字母,数字下划线。
也可用于取消所有元字符:\\、\[。
“ * ” 匹配位于*之前的字符或子模式出现 0次~多次。
“ + ”匹配位于+之前的字符或子模式出现 1次~多次。
“ ? ”匹配位于?之前的0个或1 个字符。(尽可能短)
{m,n}:表示至少m个重复,至多n个重复。
{0,}等同于*
{1,}等同于+
{0,1}等同于?
但是如果可以的话,最好使用*,+,?。
虽然通过re模块可以使用正则表达式处理字符串,但是正则表达式对象提供了更多的功能
有兴趣的读者可以参考官方网站或其他资料,本章只起到抛砖引玉的作用。