一、re模块

1、模块功能

通过re模块的接口接入正则表达式语言,主要用于匹配字符串。

2、正则表达式元字符以及意义

.  代表任意一个字符(除了换行符\n)

^  以什么开头

$  以什么结尾

*  重复匹配*前面的字符出现0到多次 【0,正无穷】

+  重复匹配+前面的字符1到多次【1,正无穷】

?  重复匹配?前面的字符0或1次【0,1】

{数字}  代表前面的匹配次数,如'b{3}'

{数字n,数字m}    代表前面的匹配次数n次到m次

"|"  或

'(abc){2}'  将abc括成一个整体,分组匹配

[]  代表字符集中的字符,或的关系,如'[a-z]',还有取消元字符意义的特殊功能,

  如'[^123]',^放在[]里的最前面,代表取反。

  如[1-5],-放在[]里面,代表一个范围

\与普通字符,代表一定意义如[\d],具体代表意义如下;(但\与特殊自字符,取消特殊性,如[\^])

  \d   匹配所有的数字,相当于[0-9]
  \D   匹配非数字字符,相当于[^0-9]
  \w   匹配数字字母下划线,相当于[0-9a-zA-Z_]
  \W   匹配非数字字母下划线,相当于[^0-9a-zA-Z_]
  \s   匹配任意空白符(空格,换行,回车,换页制表符)相当于[ \f\n\r\t]
  \S   匹配任意非空白符,相当于[^ \f\n\r\t]
  \A   匹配字符串开始,和^区别:\A只匹配行首,在re.M下也不匹配他行行首
  \Z   匹配字符串结束,和$区别:\Z只匹配结束,在re.M下也不匹配他行结束
  \b   匹配单词的边界,空格之间
  \B   匹配非单词的边界,空格之间

()  做分组,弄成整体字符组进行匹配,如'(bs)'

  添加组名分组:根据组名查出

  

查找网址的例子:

import re
print(re.findall('www.(\w+).com',"www.baidu.com")) #['baidu'],得出中间结果
print(re.findall('www.(?:\w+).com',"www.baidu.com")) #['www.baidu.com'],得出所有结果

匹配身份证例子:

3、模块的方法

findall():所有结果都返回到一个列表里

search():返回匹配到的第一个对象(object),可以调用group()方法返回结果(常用)

    print(re.search('www.(\w+).com',"www.baidu.com").group())

match():只在字符串开始匹配,只匹配开头符不符合。也是返回一个对象,也用group()返回结果。

split() :分割字符串

    print(re.split('k+','sdfkwerkryy')) #['sdf', 'wer', 'ryy']

sub("替换前","替换后","替换的字符串",替换多少个(不写默认全部替换))

    print(re.sub('chen','peng','chenxiaozanchen',1)) #pengxiaozanchen

compile():提高一点点效率,编译规则,再调用

    

finditer() : 得到的结果不是放到list,而是迭代器

    

.

最新文章

  1. How to build .apk file from command line(转)
  2. ES6-set && 数组剔重
  3. KlayGE 4.4中渲染的改进(四):SSSSS
  4. 挖一挖C#中那些我们不常用的东西之系列(2)——IsXXX 系列方法
  5. [BZOJ 1997][HNOI2010]Planar(2-SAT)
  6. 【心得】在脱离TFS的情况下,如何解除TFS绑定?
  7. juqery easyui
  8. PL/0语言编译器的设计与实现
  9. undefined function mysql_connect()解决方法
  10. 《Haskell趣学指南 Learn You a Haskell for Great Good!》-代码实验
  11. HTML5每日一练之progress标签的应用
  12. 【6】连续序列和为s
  13. [JavaEE] Eclipse中web-inf和meta-inf文件夹的信息
  14. Android性能优化典范 - 第2季
  15. 两个月淘宝刷单,连续死N次血泪史 (转)
  16. mysql5.7 二进制包安装
  17. 懵懵懂懂初识J2EE
  18. sql server 汉字的长度
  19. Yii2表单提交(带文件上传)
  20. ansible-playbook(nginx例)

热门文章

  1. 1级搭建类104-Oracle 12cR2 单实例 FS(阿里云)公开
  2. 虚拟机安装_1_wincc_matriton
  3. exp导出含有双引号的表
  4. django 搭建一个投票类网站(四)
  5. 小白的java学习之路 “ 选择结构(二)”
  6. .net core 简单定时程序
  7. ADB之安装APK
  8. ElementUI的Table表格添加自定义头CheckBox多选框
  9. 深入理解Java内存模型中的虚拟机栈
  10. LeetCode 728. 自除数