Day 20 re模块

目录

re模块

re模块有什么用

从字符串(文本)里找出特定的东西

正则表达式的匹配过程

依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功,一旦有匹配不成功的字符则匹配失败

正则表达式的语法

  1. 一般字符:就是匹配自身
  2. . 匹配除换行符(\n)以外的任意字符
  3. [ ] 字符集,匹配字符集中的任意字符,可以是多个字符,或者是字符范围
  4. \d 匹配0-9的数字
  5. \D 匹配非数字
  6. \s 匹配空白字符(空格 \t\r\n\f\v)
  7. \S 匹配非空白字符
  8. \w 单词字符和数字
  9. \W 非单词字符和数字
  10. * 匹配前一个字符0次或无限次
  11. + 匹配前一个字符一次或无限次
  12. ? 匹配前一个字符0次或1次
  13. {m} 匹配前一个字符m次
  14. {m,n}匹配前一个字符m到n次
  15. ^ 匹配字符串开头,多行的话匹配每一行
  16. $ 匹配字符串结尾,多行的话匹配每一行
  17. \A 匹配字符串开头,仅匹配一次
  18. \Z 匹配字符串结尾,仅匹配一次
  19. | 表示匹配左右表达式任意一个

贪婪模式

a.*b 在目标字符串中找到第一个a到最后一个b,输出期间的所有内容

非贪婪模式

a.*?b 在目标字符串中找到第一个a到第一个b,输出期间的所有内容

compile通用规则模板

res1 = re.compile('\d+')
res2 = re.compile('\w+')
res3 = re.compile('\s+')

result1 = res1.findall(s)
result2 = res2.findall(s)
result3 = res3.findall(s)

match和search

mathch从开头开始匹配找一个,search搜索所有找第一个

re.split()

就是字符串的split方法,区别是可以使用正则表达式去替换

sub和subn

他们两都是替换内容,但是subn会计算替换了多少次,类似于字符串的replace内置方法

猜你喜欢

转载自www.cnblogs.com/masterjian924/p/11020560.html