re(正则表达式)

字符匹配:

  普通字符匹配:re.findall("alex","shfalexjaf"),直接查找符合的字符

  元字符:  .  ^ $ * + ? {} [] () |  \

import re
re.findall("alex","asfjsuisjafjxds") #完全匹配
re.findall("a..x","asfjsuisjafjxds") #通配符 . 一个点代表一个任意字符,模糊匹配,注意不能匹配\n
re.findall("^a..x","asfjsuisjafjxds") # ^ 只从开头寻找匹配,第一个字符找不到对应的则为空
re.findall("a..x$","asfjsuisjafjxds") # $ 只看末尾是否有匹配的
re.findall("d*","asdddddddddddghiu") # * 重复多次(0-∞)匹配这个字符,匹配不上返回空
re.findall("alex+","sdfalexxxxxgs") # + 重复多次(1-∞)匹配
re.findall("alex?","sdfalexxxxxgs") # ? 只取(0,1)个
#注意 * , + , ? 这个三个多次匹配的区别,* 可以匹配 0个 ,+ 必须最少匹配1个
# ? 还有一个作用 ,将贪婪匹配变成惰性匹配,惰性匹配,按最少的次数匹配,如“alex*?”这个就只做0次匹配
# 而{}可以自己设置匹配多少次如{2,5}等
re.findall("x[yz]p","sddxypsfxzpd")    #[] 放在这里的字符有一个满足匹配就可以,是一个或的作用
re.findall("x[a*z]","sdxfpfhjxzpfgk") #在元字符【】中没有特殊字符,这里*不代表匹配多次a
re.findall("x[a-z]","sdxfpfhjxzpfgk") #【】这个字符集中只有 - ,^ , \ 这三个有正常功能
re.findall("x[a-z]*","sdxfpfhjxzpfgk")
re.findall("x[^a-z]","sdxfpfhjx32gk") #【】字符集中加上 ^ ,此时这个不在表示开头匹配,而表示非

"""
反斜杠后边跟元字符去除特殊功能,比如\. 反斜杠后边跟普通字符实现特殊功能,比如\d
\d 匹配任何十进制数;它相当于 [0-9]。
\D 匹配任何非数字字符;它相当于 [^0-9]。
\s 匹配任何空白字符;它相当于 [ \t\n\r\f\v]。
\S 匹配任何非空白字符;它相当于 [^ \t\n\r\f\v]。
\w 匹配任何字母数字下划线字符;它相当于 [a-zA-Z0-9_]。
\W 匹配任何非字母数字下划线字符;它相当于 [^a-zA-Z0-9_]
\b 匹配一个特殊字符边界,比如空格 ,&,#等
"""

 

#re模块的方法
re.findall("a","fhajsaja") #匹配所有符合的内容,并将结果返回到一个列表中
re.search("a","sjasfaska") #匹配到第一个内容就返回结果,注意这个返回的是一个对象,需要用group()方法调用
re.match("a","askfjl") #同search,但是匹配开头第一个是否符合
re.split("[ |]","hello abc|def") #分割,可以按照多个字符进行分割
re.split("[ab]","asdabcd") #按照顺序依次分割,注意当左边不存在字符时分割它会出现空字符
re.sub("\d+","AA","sajf23af22sj") #替换,需要三个参数,(匹配规则,替换的字符,原字符串)
re.sub("\d","A","ssf23shf45lk2",3) #第四个参数是匹配替换多少次
re.subn("\d","A","ssf23shf45lk2") #统计匹配替换的次数
res = re.compile("\d") #编译一个规则,下次可以直接用编译好的规则
res.findall("sfkla23jak1j42lk2")
re.finditer("\d","as23ha24ah5a") #得到的是一个迭代对象,调用时next().group() re.findall("www\.(baidu|163)\.com","aswww.baidu.comaf") #findall()优先给出组内的结果,而不是全部的匹配结果
re.findall("www\.(?:baidu|163)\.com","aswww.baidu.comaf") #在组()内加上?:表示取消优先级

内置的re模块的更多相关文章

  1. Filebeat使用内置的mysql模块收集日志存储到ES集群并使用kibana存储

    Filebeat内置了不少的模块,可以直接使用他们对日志进行收集,支持的模块如下: [root@ELK-chaofeng07 logstash]# filebeat modules list Enab ...

  2. Python内置的urllib模块不支持https协议的解决办法

    Django站点使用django_cas接入SSO(单点登录系统),配置完成后登录,抛出“urlopen error unknown url type: https”异常.寻根朔源发现是python内 ...

  3. Python内置的操作系统模块(os)与解释器交互模块(sys)

    Python内置的操作系统模块(os)与解释器交互模块(sys) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本片博客只介绍Python调用操作系统的模块即os模块,以及Pyth ...

  4. day15 内置函数和模块

    day15 内置函数和模块 1.三元表达式 代码如下: x = 1 y = 2 res = 'ok' if x > y else 'no' print(res) 输出结果:no 2.内置函数:重 ...

  5. Nginx-解读内置非默认模块 ngx_http_stub_status_module

    1.Background ngx_http_stub_status_module 是一个 Nginx 的内置 HTTP 模块,该模块可以提供 Nginx 的状态信息.默认情况下这个模块是不被编译进来的 ...

  6. Nginx解读内置非默认模块 ngx_http_stub_status_module

    1 Background http://nginx.org/en/docs/http/ngx_http_stub_status_module.html ngx_http_stub_status_mod ...

  7. python内置函数 和模块函数总结

    1.内置函数(无需导入)long() 函数将数字或字符串转换为一个长整型.len() 统计元素个数print() 打印,输出input() 输入,或阻塞程序运行type 获取类型range 产生连续的 ...

  8. Python基础-内置函数、模块、函数、json

    内置函数 1.id()返回对象的内存地址: 2. type() 返回对象类型:   3.print()打印输出: 4. input()接受一个标准输入数据,返回为string类型: 5. list() ...

  9. Django内置的分页模块

    自定义分页 未封装版: 优点:直观 缺点:代码乱,不易维护,可拓展性差 data = [] for i in range(1, 302): tmp = {"id": i, &quo ...

  10. 解剖Nginx·模块开发篇(5)解读内置非默认模块 ngx_http_stub_status_module

    1 Background ngx_http_stub_status_module 是一个 Nginx 的内置 HTTP 模块,该模块可以提供 Nginx 的状态信息.默认情况下这个模块是不被编译进来的 ...

随机推荐

  1. Linux小记 -- 更新系统软件包

    系统信息 操作系统:Ubuntu 18.04.2 LTS 内核版本:4.15.0-51-generic 何时需要更新 重新启动Ubuntu发现如下motd(message of tody),此时需要更 ...

  2. LR报:Error 27796 Failed to connect to server

    原错误信息: Action.c(58): Error -27796: Failed to connect to server "10.1.44.68:7013": [10048] ...

  3. lnmp源码搭建

      Nginx工作原理 这里需要结合Apache的工作,对PHP文件处理过程的区别 1:Nginx是通过php-fpm这个服务来处理php文件        2:Apache是通过libphp5.so ...

  4. python3 导入模块

    python3导入模块和python2  有些不同   需要指定相对目录 如,在Project下有一个nlp目录里面有一个ltp模块,则 from n1.ltp import Clawer

  5. SHELL输出颜色和闪烁控制

    Shell 颜色和闪烁控制 在Shell下有时候需要定制输出,比如给输出加上颜色,或者显示高亮,或者添加闪烁等. 然后这些颜色代码或者控制码等相对不好记住.这个时候我们可以考虑把最终想要的结果制定成对 ...

  6. android 程序的运行步骤(备忘)

    java代码: public class HelloWorld { public static void main(String[] args) { System.out.println(" ...

  7. HTML5——web存储 Web SQL 数据库 应用程序缓存 Web Workers 服务器发送事件 WebSocket

    web存储 比cookie更好的本地存储方式 localStorage - 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除. sessionStorage - 用于临时保存同一窗口( ...

  8. VMware克隆虚拟机后mac地址重新设置

    ifconfig eth1   确定新网卡的MAC地址. nmcli con 确定新网卡的UUID vim /etc/udev/rules.d/70-persistent-net.rules 把原et ...

  9. 03Java面试题-------------中科软

    1.String是最基本的数据类型吗?String和StringBuffer的区别? 不是.Java中的基本数据类型只有8个:byte,short,int,long,float,double,char ...

  10. [MicroSoft]Introducing .NET 5

    Introducing .NET 5 Richard https://devblogs.microsoft.com/dotnet/introducing-net-5/ 将路线图 完整的给出来了. Ma ...