正则表达式

就其本质而言,正则表达式是一种小型的/高度专业化的编程语言,它内嵌在python中,并通过RE模块实现,正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。

1.元字符

-普通字符,大多数字符和字母都会和自身匹配

-元字符

例如: .   ^   $   *   ?   { }   [  ]   |   ( )  \

>>> re.findall("a...d","abcfdasf")
['abcfd']
>>> re.findall("^a...d","abcfdasf")       # 需要找的内容必须在字符串开头
['abcfd']
>>> re.findall("x.....u$","xiaohongxiaogangxiaomingxiaowangxiaoliu")        # 需要找的内容必须在结尾
['xiaoliu']
>>> re.findall("xiaoliux+","xiaohongxiaogangxiaomingxiaowangxiaoliu")  # + (1,无穷)
[]
>>> re.findall("xiaoliux*","xiaohongxiaogangxiaomingxiaowangxiaoliu") # * (0,无穷)
['xiaoliu']
>>>
>>> re.findall("liu?","xiaohongxiaogangxiaomingxiaowangxiaoliuuu")    # ? (0,1)
['liu']
>>> re.findall("liu{3}","xiaohongxiaogangxiaomingxiaowangxiaoliuuu")       # { } 可以是任意范围
['liuuu']
>>> re.findall("liu{4}","xiaohongxiaogangxiaomingxiaowangxiaoliuuu")
[]

>>> re.findall ("q[a-z]","sdafqaa")    # q与取到的a到z相匹配
['qa']

>>> re.findall ("q[0-9]*","sdafq77aa456")  # 取数字
['q77']
>>> re.findall ("q[^a-z]","sdafq77aa456")    #  ^ 匹配 非 a-z的值
['q7']
>>> re.findall ("\([^()]*\)","12+(34*6+2-5*(2-1))")  # \ ( 将括号转换为普通括号
['(2-1)']

-------

\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.findall ("\d+","12+(34*6+2-5*(2-1))")
['', '', '', '', '', '', '']
>>> re.findall ("\D+","12+(34*6+2-5*(2-1))")
['+(', '*', '+', '-', '*(', '-', '))']
>>> re.findall ("\s","hello world")
[' ']
>>> re.findall ("\S","hello world")
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
>>> re.findall ("\w+","hello world")
['hello', 'world']
>>> re.findall ("\W","hello world")
[' ']
>>> re.findall ("\w","hello1 world2")
['h', 'e', 'l', 'l', 'o', '', 'w', 'o', 'r', 'l', 'd', '']
>>> re.findall ("\w+","hello1 world2")
['hello1', 'world2']

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

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

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

  2. Python学习 之 正则表达式

    1.简单的正则表达式 import re s=r'abc' re.findall(s,"aaaaaaaaaaaaaaa") #结果为[] re.findall(s,"ab ...

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

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

  4. Python学习--16 正则表达式

    正则表达式是一种描述性的语言,用来匹配字符串.凡是符合规则的字符串,我们认为就是匹配了. 正则表达式并非Python独有的,它与语言无关.很多语言都支持正则表达式. 我们经常用正则表达式来匹配电子邮件 ...

  5. python学习日记(正则表达式)

    定义 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Pyth ...

  6. python学习笔记----正则表达式

    正则: regular expression 常用的场景: #正则的包 >>> import re #match:开头匹配,匹配到,返回一个匹配对象,否则返回None >> ...

  7. python学习笔记——正则表达式regex

    1 概述 1.1 定义 本质是由一系列字符和特殊符号组成的字串,用来表示一定规则的某一类字符串. 1.2 特点 正则表达式是一个独立的技术,其在多种编程语言中使用. 在python语言中的正则表达式模 ...

  8. Python学习 :正则表达式

    正则表达式 python 使用正则表达式(re)来进行匹配引擎搜索 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串” 关于正则表达式 ...

  9. python 学习总结----正则表达式

    正则表达式 应用场景 - 特定规律字符串的查找,切割,替换 - 邮箱格式:URl,IP地址等的校验 - 爬虫项目中,特定内容的提取 使用原则 - 只要使用字符串等函数能解决的问题,就不要使用正则 - ...

随机推荐

  1. boosting与随机森林

      本文原创,转载请注明出处 http://www.cnblogs.com/gufeiyang 本文主要分两部分,boosting 与 随机森林. “三个臭皮匠顶一个诸葛亮”是说三个不聪明的人集合在一 ...

  2. MAC 上抓取网页数据的工具有哪些?

    我希望能够从网页上, 比如气象局数据, 财经数据等等, 我看到官方提供的数据都比较混乱, 有的是一个php文件, 有的是一个文本, 有的干脆不提供数据, 我想问, Mac上, 用什么工具去抓数据, 以 ...

  3. What is content-type and datatype in an AJAX request?

    https://api.jquery.com/jquery.ajax/ What is content-type and datatype in an AJAX request? contentTyp ...

  4. 【Java.Regex】用正则表达式查找Java源文件中的注释

    代码: package regex; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.I ...

  5. 为什么要监控sql语句?如何监控?

    01 为什么要监控sql语句? ① 因为程序大了以后,sql语句有可能被多个地方调用 .你不能确认当前时间是不是只执行了你需要的那条语句 . ② 有的持久层框架采用linq的语法来写sql , 程序中 ...

  6. OctetString 转String

    /// <summary> /// OctetString转时间 /// </summary> /// <param name="ss">字符串 ...

  7. Flutter的运行环境标识

    Flutter的四种运行模式:Debug.Release.Profile和test ,在实际开发中,我们往往需要根据当前运行模式的不同,选择不同的操作,比如在Debug模式启用Log.在生产模式关闭L ...

  8. 人性化的HTTP命令行工具——HTTPie

    Httpie 是什么 Httpie (aych-tee-tee-pie)是一个 HTTP 的命令行客户端.其目标是让 CLI 和 web 服务之间的交互尽可能的人性化.你可以用它很方便的用 http ...

  9. VAE论文学习

    intractable棘手的,难处理的  posterior distributions后验分布 directed probabilistic有向概率 approximate inference近似推 ...

  10. Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file at brut.androlib.res.decoder.ARSCDecoder.decode

    使用ApkIDE反编译出现如下错误: Exception in thread "main" brut.androlib.AndrolibException: Could not d ...