Python_re模块

作者:无名 - 其它综合 -

一、re简介

  正则表达式是一种对字符串(包括普通字符、非打印字符、通用字符(称为原子)、特殊字符(称为元字符))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个规则字符串,这个规则字符串用来表达对字符串的一种过滤逻辑。

  正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。

二、原子讲解

  ### 普通字符作为原子

    普通字符就是指普通的字符,比如a-z,a-z, 0-9。   

 1  #导入re模块
 2 import re
 3 string = "abcd123456abc"
 4 pat = "abc"
 5 ret = re.search(pat, string)   
 6 print(ret)
 7 lt;re.match object; span=(0, 3), match=‘abc‘gt;

 

   ### 非打印字符作为原子

    非打印字符指在计算机中有一些字符是确确实实存在,但是它们不能够显示或者打印出来。

    比如:1、ascii码表为例,ascii码值在0-31的为控制字符,无法显示和打印

       2、/t /n 等一些转义字符

1 #导入re模块
2 import re
3 string = ‘‘‘abcd12
4 3456abc‘‘‘
5 pat = "\n"
6 ret = re.search(pat, string)
7 print(ret)
8 lt;re.match object; span=(6, 7), match=‘\n‘gt;

   ### 通用字符作为原子

1 ‘‘‘
2     \w 匹配的是任意字母、数字、下划线,类似但不等价于[a-za-z0-9_],这里的"单词"字符使用unicode字符集。
3     \w 除匹配的是任意字母、数字、下划线,等价于[^a-za-z0-9_]。
4     \d 匹配的是数字,等价于[0-9]。
5     \d 除匹配的是数字,等价于[^0-9]。
6     \s 匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
7     \s 匹配任何可见字符。等价于[^ \f\n\r\t\v]。
8 
9 ‘‘‘

  ###原子表 ==gt; [ 任意字符 ]

 1  #导入re模块
 2 import re
 3 string = ‘‘‘abcd123456abc‘‘‘
 4 pat = "abc[abcde]" #在[]中的任意字符选出一个存在匹配的值,如没有则返回none
 5 ret1 = re.search(pat, string)
 6 pat = "abc[^abc]"
 7 ret2 = re.search(pat, string) 
 8 print(ret1)
 9 print(ret2)
10 lt;re.match object; span=(0, 4), match=‘abcd‘gt;
11 lt;re.match object; span=(0, 4), match=‘abcd‘gt;
12 [finished in 0.1s]

三、元字符

  特殊字符

 1 ^    #匹配输入字行首。
 2 $    #匹配输入字行尾。
 3 \    # 转义字符
 4 {n}  #n次
 5 {n,} #至少n次
 6 {n,m}#至少n次,至多n次
 7 .    #匹配除\n的任意字符
 8 *    #匹配前一个字符0/多次
 9 +    #匹配前一个字符1/多次
10 ?   #匹配一个字符0/1
11 |    #或。匹配|左右表达式任意一个,从左到右匹配,如果|没有包括在()中,则它的范围是整个正则表达式

python_re模块

原文地址:https://www.cnblogs.com/helloboke/p/11482175.html

IT人知识库 原文地址:http://www.itpeo.net/9999/4539836.html





标签 模块

第八天:错误异常处理

错误类型 1、语法错误 syntaxerror:代码拼写出错 attributeerror:属性异常 try: ...

网络为什么分层?

在自然世界中,分层无处不在。大到社会阶层,小到细胞层次结构。 为什么会这样?因为复杂的事物组成复杂,完成的功能复杂,把所 ...

mysql数据增删改的总结

一、在mysql管理软件中,可以通过sql语句中的dml语言来实现数据的操作,包括1.使用insert实现数据的插入2. ...

linuxdmesg查看系统故障信息

dmesg 可以查看linux 内核信息 dmesg’命令设备故障的诊断是非常重要的。在‘dmesg’命令的帮助下进 ...

企业级SpringBoot教程(八)springboot整合mongodb

准备工作 安装 mongodb jdk 1.8 maven 3.0 idea 环境依赖 在pom文件引入spring ...

关于pytorch在windows上编辑的问题集合

cmake在windows上自动寻找v140(vs2015)的编译器,现在只有vs2013的ide,所以要修改编译器 修 ...

macos使用pyenv管理python多版本

1 安装pyenv brew install pyenv 2配置~/bash_profile export py ...

linux内存不足,swap交换分区创建

为什么需要swap 根 据redhat公司的建议,linux系统swap分区最适合的大小是物理内存的1-2倍.不过lin ...

科学计数问题解决

bigdecimaldb=newbigdecimal(transmoeny); system.out.println( ...

babel-preset-es2015,babel-polyfill与babel-plugin-transform-runtime

babel-preset-es2015 是一个babel的插件,用于将部分es6 语法转换为es5 语法。转换的语法包括 ...

C#基础篇之语言和框架介绍

1.如何描述c#和.net的关系? .net的是平台,c#是为了微软公司为了.net平台开发的面向对象语言。 2.c# ...

golang基础学习-strings包常用函数学习

package main import ( "fmt" "strings" ) //strfunc 字符串说明 ...

Leetcode672.灯泡开关II

灯泡开关ii 现有一个房间,墙上挂有n只已经打开的灯泡和 4 个按钮。在进行了m次未知操作后,你需要返回这n只灯泡可能有 ...

vue中的ref,refs使用

使用elementui时,tree遇到的坑 1、发现,this.$refs每次都是undefined; 问题原因:渲染组 ...

EffectiveJavaP2CreatingandDestroyingObjects

this chapter concerns creating and destorying objects : wh ...

wepy小程序入门和项目初始化

前言: wepy小程序项目初始化的操作,官方文档看了好几遍,感觉写得不是很清楚。 这篇写得挺好的:小程序开发之wepy ...

docker部署nginx服务器

1,下载nginx镜像 docker pull nginx 2,启动 docker run --name runo ...

Markdown:Syntax

markdown: syntax main basics syntax license ...

JSP基础--九大内置对象

jsp九大内置对象 object findattribute(string name):依次在page、request ...

python3之深浅copy对比

一、赋值对比1、列表l1=[1,2,3] l2=l1 l1.append(#39;a#39;) print(l1,l2) ...