re

 常用的re语法

re.match 从头开始匹配      ,用$最好不用match

re.search 匹配包含,匹配到一个就结束    判断有没有返回结果,有结果可以通过group()返回结果,否则就会报错

  • group()    返回search,match结果
  • groups(),分组匹配时分开结果

re.findall 把所有匹配到的字符放到以列表中的元素返回

re.split 以匹配到的字符当做列表分隔符

re.sub 匹配字符并替换

re.fullmatch 全部匹配

 
表示字符 . 匹配任意1个字符(除了\n) [ ] 匹配[ ]中列举的字符
\d 匹配数字,即0-9 \D 匹配非数字,即不是数字 \s 匹配空白,即 空格,tab键\t、\n、\r  \S 匹配非空白 \w 匹配单词字符,即a-z、A-Z、0-9、_ \W 匹配非单词字符 表示数量 * 匹配前一个字符出现0次或者无限次,即可有可无 + 匹配前一个字符出现1次或者无限次,即至少有1次 ? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有 {m} 匹配前一个字符出现m次 {m,} 匹配前一个字符至少出现m次 {m,n} 匹配前一个字符出现从m到n次 表示边界 ^ 匹配字符串开头 $ 匹配字符串结尾
\A 只从字符开头匹配
\Z 匹配字符结尾 \b 匹配一个单词的边界 配合r""使用 \B 匹配非单词边界 匹配分组 | 匹配左右任意一个表达式 (ab) 将括号中字符作为一个分组 \num 引用分组num匹配到的字符串 (?P<name>) 分组起别名 (?P=name) 引用别名为name分组匹配到的字符串 贪婪匹配 Python里数量词默认是贪婪的,总是尝试匹配尽可能多的字符 在"*","?","+","{m,n}"后面加上?,使贪婪变成非贪婪。

标志符
re.I(re.IGNORECASE): 忽略大小写(括号内是完整写法,下同)
re.M(MULTILINE): 多行模式,,改变'^'和'$'的行为 遇到换行符,就认为是结尾
re.S(DOTALL): 改变'.'的行为,本来不匹配换行符,加入此标志符,连换行符也要匹配
re.X(re.VERBOSE) 可以给你的表达式写注释,使其更可读,下面这2个意思一样

 

posted @ 2018-05-16 21:56  感动#心  阅读(331)  评论(0编辑  收藏  举报