我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PYthon之正则 re

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PYthon之正则 re

re模块是python中处理正在表达式的一个模块

正则表达式知识储备:http://www.cnblogs.com/huamingao/p/6031411.html

 

    正则表达式使用反斜杠" \ "来代表特殊形式或用作转义字符,这里跟Python的语法冲突,因此,Python用" \\\\ "表示正则表达式中的" \ ",因为正则表达式中如果要匹配" \ ",需要用\来转义,变成" \\ ",而Python语法中又需要对字符串中每一个\进行转义,所以就变成了" \\\\ "。
上面的写法是不是觉得很麻烦,为了使正则表达式具有更好的可读性,Python特别设计了原始字符串(raw string),需要提醒你的是,在写文件路径的时候就不要使用raw string了,这里存在陷阱。raw string就是用'r'作为字符串的前缀,如 r"\n":表示两个字符"\"和"n",而不是换行符了。Python中写正则表达式时推荐使用这种形式。

# #!/usr/bin/env python
#
# '.'     默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行
# '^'     匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE)
# '$'     匹配字符结尾,或e.search("foo$","bfoo\nsdfsf",flags=re.MULTILINE).group()也可以
# '*'     匹配*号前的字符0次或多次,re.findall("ab*","cabb3abcbbac")  结果为['abb', 'ab', 'a']
# '+'     匹配前一个字符1次或多次,re.findall("ab+","ab+cd+abb+bba") 结果['ab', 'abb']
# '?'     匹配前一个字符1次或0次
# '{m}'   匹配前一个字符m次
# '{n,m}' 匹配前一个字符n到m次,re.findall("ab{1,3}","abb abc abbcbbb") 结果'abb', 'ab', 'abb']
# '|'     匹配|左或|右的字符,re.search("abc|ABC","ABCBabcCD").group() 结果'ABC'
# '(...)' 分组匹配,re.search("(abc){2}a(123|456)c", "abcabca456c").group() 结果 abcabca456c
#
#
# '\A'    只从字符开头匹配,re.search("\Aabc","alexabc") 是匹配不到的
# '\Z'    匹配字符结尾,同$
# '\d'    匹配数字0-9
# '\D'    匹配非数字
# '\w'    匹配[A-Za-z0-9]
# '\W'    匹配非[A-Za-z0-9]
# 's'     匹配空白字符、\t、\n、\r , re.search("\s+","ab\tc1\n3").group() 结果 '\t'
#
# '(?P<name>...)' 分组匹配 re.search("(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{4})","371481199306143242").groupdict("city") 结果{'province': '3714', 'city': '81', 'birthday': '1993'}


#常用的匹配方法
# re.match 从头开始匹配
# re.search 匹配包含
# re.findall 把所有匹配到的字符放到以列表中的元素返回
# re.splitall 以匹配到的字符当做列表分隔符
# re.sub      匹配字符并替换

# 仅需轻轻知道的几个匹配模式
#
# re.I(re.IGNORECASE): 忽略大小写(括号内是完整写法,下同)
# M(MULTILINE): 多行模式,改变'^'和'$'的行为(参见上图)
# S(DOTALL): 点任意匹配模式,改变'.'的行为

1. match(pattern, string, flags=0)

从字符串的开头进行匹配, 匹配成功就返回一个匹配对象,匹配失败就返回None

flags的几种值
X 忽略空格和注释

I 忽略大小写的区别   case-insensitive matching

S  . 匹配任意字符,包括新行

 match(pattern, string, flags=0)

 

2. search(pattern, string, flags=0)

浏览整个字符串去匹配第一个,未匹配成功返回None

 search(pattern, string, flags=0)

 

3. findall(pattern, string, flags=0)

match和search均用于匹配单值,即:只能匹配字符串中的一个,如果想要匹配到字符串中所有符合条件的元素,则需要使用 findall。

findall,获取非重复的匹配列表;如果有一个组则以列表形式返回,且每一个匹配均是字符串;如果模型中有多个组,则以列表形式返回,且每一个匹配均是元祖;空的匹配也会包含在结果中

 findall(pattern, string, flags=0)

 

4. sub(pattern,repl,string,count=0,flags=0)

替换匹配成功的指定位置字符串

 sub(pattern, repl, string, count=0, flags=0)

 
5. split(pattern,string,maxsplit=0,flags=0)
根据正则匹配分割字符串

 split(pattern, string, maxsplit=0, flags=0)

 

6.compile()

python代码最终会被编译为字节码,之后才被解释器执行。在模式匹配之前,正在表达式模式必须先被编译成regex对象,预先编译可以提高性能,re.compile()就是用于提供此功能。

 

7. group()与groups() 

匹配对象的两个主要方法:

group()  返回所有匹配对象,或返回某个特定子组,如果没有子组,返回全部匹配对象

groups() 返回一个包含唯一或所有子组的的元组,如果没有子组,返回空元组


转载:http://www.cnblogs.com/huamingao/p/6062367.html

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PYthon之正则 re

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PYthon之正则 re

re模块是python中处理正在表达式的一个模块正则表达式知识储备:http://www.cnblogs.com/huamingao/p/6031411.html     正则表达式使用反斜杠" \ "来代表特殊形式或用作转义字符,这里跟P
2023-01-31

python模块之re(正则表达式)

匹配模式re.ASCII同re.A,对应的内联标识为(?a),用于向后兼容。使元字符\w, \W, \b, \B, \d, \D, \s和\S仅匹配ASCII字符。该模式只在string模式下有意义,在byte模式下将被忽略。re.DEBU
2023-01-31

python--模块之re正则表达式

简介:正则表达式本身是一个小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,我们可以通过直接调用来实现正则匹配。正则表达式基础知识:--普通字符匹配自身 abc ----abc--元字符 . :匹配任何字符(
2023-01-30

python re库-----学习(正则

#!/usr/bin/env python#-*- coding:UTF-8 -*-###################################################### Author: sunfx   xingrhc
2023-01-31

python模块之re正则表达式详解

一、简单介绍 正则表达式是一种小型的、高度专业化的编程语言,并不是python中特有的,是许多编程语言中基础而又重要的一部分。在python中,主要通过re模块来实现。 正则表达式模式被编译成一系列的字节码,然后由用c编写的匹配引擎执行。那
2022-06-04

Python正则表达式 re(regul

1. 点..: 代表一个字符 (这个跟linux的正则表达式是不同的,那里.代表的是后面字符的一次或0次出现)2. 转义\\或者r'\': 如 r'python\.org' (对.符号的转义)3. ^ 非或叫做排除如[^abc]: 任何以非
2023-01-31

Python 08 re 正则表达式

. 匹配除换行符以外的任意字符\w 匹配字母或数字或下划线或汉字\s 匹配任意的空白符\d 匹配数字\b 匹配单词的开始或结束^ 匹配字符串的开始$ 匹配字符串的结束 代码/语法 说明* 重复零次或更多次+ 重复一次或更多次? 重复零次或一
2023-01-31

python 关于正则表达式re

  1.正则表达式 re  典型的搜索和替换操作要求您提供与预期的搜索结果匹配的确切文本。虽然这种技术对于对静态文本执行简单搜索和替换任务可能已经足够了,但它缺乏灵活性,若采用这种方法搜索动态文本,即使不是不可能,至少也会变得很困难。  通
2023-06-02

python正则-re的用法详解

Python中的re模块是用来进行正则表达式操作的工具包。re模块提供了很多函数和方法,用于对字符串进行匹配、查找、替换等操作。1. re.match(pattern, string, flags=0)从字符串的起始位置开始匹配patter
2023-08-11

python正则表达式模块re

正则表达式的特殊元素匹配符号描述'.'(点dot)在默认模式下,它匹配除换行符之外的任何字符。如果指定了DOTALL标志,则匹配包括换行符在内的任何字符'^'(Caret)匹配以字符串开头,找到后返回匹配的字段import reprint(
2023-01-30

关于Python正则表达式模块之re模块

这篇文章主要介绍了关于Python正则表达式模块之re模块, re模块是Python中的重要组成部分,这里涉及到字符串的匹配,转换,自定义格式化等,需要的朋友可以参考下
2023-05-16

Python re正则表达式学习

一、re.matchre.match 尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词。import re  text = "JGood is a handsome boy, he is cool, clever, and so
2023-01-31

python re模块 正则表达式

导航:1、正则表达式元字符2、预定义字符集3、re模块常用函数4、注意事项正则表达式在很多语言里都支持,python也不例外,re模块就是正则表达式的应用正则表达式对字符串的逻辑操作,主要是对字符串的一种过滤,用“元字符” 与“普通字符”组
2023-01-30

【python】re库 正则的一些过滤和

部分参考:https://www.cnblogs.com/edwardsun/p/4421773.html match(string[, pos[, endpos]]) | re.match(pattern, string[, flags]
2023-01-30

Python正则表达re模块之findall()函数怎么使用

这篇文章主要介绍“Python正则表达re模块之findall()函数怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python正则表达re模块之findall()函数怎么使用”文章能帮助大
2023-07-02

python re 正则表达式学习总结

# -*- coding: utf-8 -*-import reimport os#------------------------------------- re(正则表达式)模块 ----------------------------
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录