一、re 模块中

1、re.match #从开始位置开始匹配,如果开头没有match()就返回none

语法:re.match(pattern, string, flags=0)

pattern 匹配的正则表达式
string 要匹配的字符串。
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

2、re.search #搜索整个字符串

语法:re.search(pattern, string, flags=0)

pattern 匹配的正则表达式
string 要匹配的字符串。
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

3、re.findall #搜索整个字符串,返回一个list

语法:re.findall(pattern, string[, flags]):

flags:参数

re.I 使匹配对大小写不敏感
re.L 做本地化识别(locale-aware)匹配
re.M 多行匹配,影响 ^ 和 $
re.S 使 . 匹配包括换行在内的所有字符
re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
# -*- config=utf-8 -*-
#正则表达式
#1、处理文本和数据
#2、是对字符串操作的一种逻辑公式
import re;
#Python通过re模块提供对正则表达式的支持。使用re的一般步骤是先将正则表达式的字符串形式编译为Pattern实例,
# 然后使用Pattern实例处理文本并获得匹配结果(一个Match实例),最后使用Match实例获得信息,进行其他的操作。
pattern=re.compile(r"hello");
match=pattern.match("hello Word");
if match:
print(match.group()); #================== .匹配任意字符(除了\n)===========================
ma=re.match(r"a","a");#只想匹配a
print(ma.group());#返回 a 如果匹配失败则为空
ma1=re.match(r".","d");
print(ma1.group());# 返回 d
ma2=re.match(r"{.}","{c}");# 匹配大括号中任意字符(除了\n)
print(ma2.group());
#=================== [...] 匹配任意字符集===================
ma3=re.match(r"{[abc]}","{a}");#匹配大括号abc中任意字符
print(ma3.group());
ma4=re.match(r"[a-z]","b");#匹配a-z 小写任意字符
print(ma4.group());
ma5=re.match(r"[a-zA-Z]","F");#匹配 a-z 任意a字符
print(ma5.group());
ma6=re.match(r"[a-zA-Z0-9]","");#匹配任意字母与数字
print(ma6.group());
#================== \w 匹配任意单词字符 =================
ma7=re.match(r"[\w]",""); #
print(ma7.group());
#=====================\W 任意非单词字符 =========================
ma8=re.match(r"[\W]","*");
print(ma8.group());
#===================\d 匹配数字===================
ma9=re.match(r"[\d]",""); #等于[0-9]
print(ma9.group());
#==================== \D 匹配非数字========================
ma9=re.match(r"[\D]","(");
print(ma9.group());
#======================\s 匹配空格=======================
ma10=re.match(r"[\s]"," ");
print(ma10.group());
#======================\S 匹配非空格=======================
ma11=re.match(r"[\S]","撒");
print(ma11.group());
#========================= \ 转义=========================
ma12=re.match(r"\[[\w]\]","[2]");#匹配中括号中任意字符
print(ma12.group()) #=============================
# -*- config=utf-8 -*- import re;
#=================* 匹陪前一个字符 0次或无限次==========
ma=re.match(r"[A-Z][a-z]","Aa");
print(ma.group());#Aa
ma1=re.match(r"[A-Z][a-z]*","Fdsdasd22");#[a-z]无限多个
print(ma1.group());#Fdsdasd
#================== + 匹配前一个字符一次或无限次============
ma2=re.match(r"[_a-zA-Z]+[_\w]*","_dasd");#匹配 _ 或者字母开头的任意字符
print(ma2.group());
#=================== ?匹配前一个字符0次或1次=========================
ma3=re.match(r"[1-9]?[0-9]","");#匹配一个正两位数包括0
print(ma3.group());
ma4=re.match(r"[1-9]?[0-9]","");#
print(ma4.group());#
#====================== {m}匹配前一个字符m次 ========================
ma5=re.match(r"[0-9]{6}","");#匹配0-9任意字符6次
print(ma5.group());#
#====================== {m,n}匹配前一个字符m-n次 ====================
ma6=re.match(r"[a-zA-Z0-9]{3,20}@163.com","jalja365@163.com");#匹配163邮箱
print(ma6.group());
#=============== *? +? ??尽可能的少匹配===================
ma7=re.match(r"[0-9][a-z]*","2we");
print(ma7.group());#2we
ma8=re.match(r"[0-9][a-z]*?","2we");
print(ma8.group());# ma9=re.match(r"[0-9][a-z]+?","2we");
print(ma9.group());#2w ma10=re.match(r"[0-9][a-z]??","2we");
print(ma10.group());#2w #======================================== # -*- config=utf-8 -*-
import re;
#===================== search(pattern,String,flags=0)在一个字符串中查找匹配 ===================
str1="jalja_365—1321";
ma=re.search(r"\d+",str1);#获取字符串中第一次出现的数字
print(ma.group());#
#=================findall(pattern,String,flags=0)返回所有匹配部分的列表===================
str2="java=90,python=99,c==300";
ma2=re.findall(r"\d+",str2);
print(ma2);# ['90', '99', '300'] 获取所有的数字 以列表的形式返回
num=sum([int(x) for x in ma2]);#求列表所有元素的和
#==================sub()将字符串中匹配正则的字符替换成新的字符串=====================
str3="java=99";
ma3=re.sub(r"\d+","",str3);
print(ma3);#java=100
#使用函数
def add_1(match):#match 是macth对象即sub()的第一个参数
val=match.group();
print(val);
return str(int(val)+1);
ma4=re.sub(r"\d+",add_1,str3);
print(ma4);#java=100
#==============split()根据匹配规则分割字符串返回列表====================
str4="jalja:c c++ java Python js,c#";
ma5=re.split(r":| |,",str4);
print(ma5);#['jalja', 'c', 'c++', 'java', 'Python', 'js', 'c#']

python学习 正则表达式的更多相关文章

  1. python学习——正则表达式

    正则表达式                        正则表达式的主要作用就是对字符串进行匹配,通过匹配,进行筛选,选择出符合规则的字符串.其实正则表达式的作用就像是一个过滤器一样.你输入好自己的 ...

  2. Python学习 ——正则表达式

    正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. re 模块使 Python 语言拥有全部的正则表达式功能. compile 函数根据一个模式字符串和可选的标志参数生 ...

  3. python学习-正则表达式(十)

    1.查看re模块的全部属性和函数 >>>import re,pprint >>>pprint.pprint(re.__all__) ['match', 'fullm ...

  4. [python 学习]正则表达式

    re 模块函数re 模块函数和正则表达式对象的方法match(pattern,string,flags=0) 尝试使用带有可选的标记的正则表达式的模式来匹配字符串.如果匹配成功,就返回匹配对象:如果失 ...

  5. 四、python学习-正则表达式

    正则表达式 import re lst = re.findall(正则表达式,需要匹配的字符串) findall 把所有匹配到的字符串都搜出来,返回列表 不能把分组内容和匹配内容同时显示出来 sear ...

  6. Python学习笔记——正则表达式入门

    # 本文对正则知识不做详细解释,仅作入门级的正则知识目录. 正则表达式的强大早有耳闻,大一时参加一次选拔考试,题目就是用做个HTML解析器,正则的优势表现得淋漓尽致.题外话不多讲,直接上干货: 1. ...

  7. 学习 正则表达式 js java c# python 通用

    正则表达式 js java c# python 学习网站 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Globa ...

  8. 【Python学习笔记四】获取html内容之后,如何提取信息:使用正则表达式筛选

    在能够获取到网页内容之后,发现内容很多,那么下一步要做信息的筛选,就和之前的筛选图片那样 而在python中可以通过正则表达式去筛选自己想要的数据 1.首先分析页面内容信息,确定正则表达式.例如想获取 ...

  9. [Python学习笔记]正则表达式总结

    常用缩写字符及其含义表格查询 缩写字符分类 含义 \d 0-9的任意数字 \D 除0-9的数字以外的任何字符 \w 任何字母.数字或下划线字符(可以认为是匹配"单词"字符) \W ...

随机推荐

  1. ASP.NET路由模型解析

    大家好,我又来吹牛逼了 ~-_-~ 转载请注明出处:来自吹牛逼之<ASP.NET路由模型解析> 背景:很多人知道Asp.Net中路由怎么用的,却不知道路由模型内部的运行原理,今天我就给大家 ...

  2. 玩转spring boot——AOP与表单验证

    AOP在大多数的情况下的应用场景是:日志和验证.至于AOP的理论知识我就不做赘述.而AOP的通知类型有好几种,今天的例子我只选一个有代表意义的“环绕通知”来演示. 一.AOP入门 修改“pom.xml ...

  3. duang~免费的学习视频来啦:学霸君之全栈测试

    学霸君向童鞋们推荐一款 同名学霸学习 视频教程 重点是完全免费收看学习噢!!! 今天 学霸君推荐腾讯课堂的学霸君之全栈测试 复制下方链接至腾讯课堂中报名学习 https://ke.qq.com/cou ...

  4. git和pycharm管理代码

    首先明白三个概念,服务器代码库,本地代码库,和正在coding的项目. coding完毕后,先通过commit提交到本地代码库,然后通过push再提交server的代码库    git步骤 git c ...

  5. mysql-5.6.34 Installation from Source code

    Took me a while to suffer from the first successful souce code installation of mysql-5.6.34. Just pu ...

  6. Centos6.5 配置Nginx开机自启动

    1.在/etc/init.d/目录下创建 nginx 文件,内容如下: #!/bin/sh # # nginx - this script starts and stops the nginx dae ...

  7. 支付宝web支付

    过程 1. 用户下单 2. 商户后台产生订单 3. 请求支付宝web支付页面(将订单信息返回给用户---放在form里面---隐藏起来-----并通过脚本自动提交此form到支付宝web支付页) 4. ...

  8. Linux 中优秀的文本化编辑思想大碰撞(Markdown、LaTeX、MathJax)

    这样一个标题可能不太准确,因为确实无法准确地解释什么叫"文本化编辑思想".其实我这篇随笔主要是想探讨 Markdown.LaTeX.MathJax,有兴趣的朋友可以继续往下看,同时 ...

  9. Hbase学习笔记01

    最近做项目接触到了HDFS.mapreduce以及Hbase,有了实战机会,今天打算将这些知识好好总结下,以备不时之需.首先从Hbase开始吧. Hbase是建立在HDFS上的分布式数据库,下图是Hb ...

  10. EasyPR--中文开源车牌识别系统 开发详解(1)

    在上篇文档中作者已经简单的介绍了EasyPR,现在在本文档中详细的介绍EasyPR的开发过程. 正如淘宝诞生于一个购买来的LAMP系统,EasyPR也有它诞生的原型,起源于CSDN的taotao123 ...