python正则表达式_总结

正则表达式:

作用:正则表达式是用来查找字符串的。

之前:使用正则表达式首先要导入re模块(import re)

 

  • re.match -- 从字符串的第一个单词开始匹配字符串。如果匹配到则返回一个对象;如果匹配不到则返回None.
1 >>> import re
2 >>> s = 'besttest is good! besttest best'
3 >>> print re.match(r'best',s)
4 <_sre.SRE_Match object at 0x0000000001F6C578>
5 >>> print re.match(r'est',s) 6 None

解析:

  1. match方法接收3个参数,第一个是匹配的规则,也就是正则表达式;第二个是被检查的字符串;第三个参数不是必填的,用于控制正则表达式的匹配方式。
  2. 在正则表达式的前面加一个'r',代表按字符原样来匹配;否则当表达式字符串中包含转义字符的话就会被转义。

 

  • re.search -- search的方法是从字符串的整个内容里面找,如果找到了就返回第一个,找不到就返回None.如果想列出找到的内容需要用.group()方法,即(re.search(r'is',s).group())
 1 >>> import re
 2 >>> s = 'besttest is good! besttest best'
 3 >>> print re.search(r'best',s)
 4 <_sre.SRE_Match object at 0x0000000001F6C578>
 5 
 6 >>> print re.search(r'best',s).group()
 7 best
 8 
 9 >>> print re.search(r'bet',s)
10 None

 

  • re.findall -- 是从字符串所有内容中找,找到就返回,直到找完.它的返回值是一个列表.
1 >>> import re
2 >>> s = 'besttest is good! besttest best'
3 >>> print re.findall(r'best',s)
4 ['best', 'best', 'best']
5 
6 >>> print re.findall(r'bst',s)
7 []

 

  • re.sub -- 用来替换字符串的.即:用正则表达式身后的字符串替换正则表达式的字符串,会返回一个新的整个字符串.如果匹配不到的话,直接返回原来的字符串.
1 >>> import re
2 >>> s = 'besttest is good! besttest best'
3 >>> print re.sub(r'best','BEST',s)
4 BESTtest is good! BESTtest BEST
5 >>>
6 >>> s = 'besttest is good! besttest best'
7 >>> print re.sub(r'bst','BEST',s)
8 besttest is good! besttest best

 

  • 正则符号:
  1. * :匹配*前面的一个字符0-多次
  2. +:匹配+前面的一个字符1-多次
  3. ?:匹配?前面的一个字符0-1次
  4. {n}:匹配花括号前面的一个字符n次
  5. {n,m}:匹配花括号前面一个字符n-m次
  6. .:默认匹配除\n之外的任意一个字符
  7. \:转义符,如果想让特殊字符失去以前(1.2.3)的含义,那么就需要在它前面加上'\'
  8. |:匹配|左边或|右的字符
  9. []:字符集合,里面是某些字符的集合,匹配的时候是这个集合里面的任意一个就可以。如果[]里面含有^时,代表取反,也就是不包括这些字符串
  10. ^:代表匹配以什么字符串开头,多行的情况个下匹配每一行的开头
  11. $:匹配以什么字符结尾,多行情况下匹配每一行的结尾
  12. \A:仅仅代表以什么字符开头,和'^'不同的是它不能用多行模式
  13. \Z:仅仅代表以什么字符结尾,和'$'不同的是它不能用多行模式
  14. \d:匹配数字0-9
  15. \D:匹配非数字
  16. \w:匹配[A-Za-z0-9],也就是所有的字母和数字和中文
  17. \W:匹配不是[A-Za-z0-9],也就是不是字母和数字和中文
  18. \s:匹配空白字符,如\t、\n、\r、空格
  19. \S:匹配非空白字符,不是\t、\n、\r、空格
  20. [A-z]:大小写字母
  21. [a-z]:小写字母
  22. [A-Z]:大写字母
  23. [0-9]:所有的数字

 

  • 分组匹配
1 >>> import re
2 >>> pattern = r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
3 >>> print re.findall(pattern,"192.168.1.2")
4 ['192.168.1.2']
5 >>>
6 >>> pattern_1 = r'\d{1,3}(?:\.\d{1,3}){3}'
7 >>> print re.findall(pattern_1,"192.168.1.2")
8 ['192.168.1.2']

 

参考链接:http://www.cnblogs.com/houzhizhe/p/7065682.html

 

posted @ 2018-08-11 15:38  小嘉欣  阅读(245)  评论(0编辑  收藏  举报