python 2.7.3

正则表达式:正则表达式就是根据自己的需要定义字符串而已,

定义方法: s = r'\d{3,4}' 为了与字符串赋值做区分,定义时需要加个 r 。

用途  : 定义好以后可以从其他给定的字符串(如网络数据流,网页代码)中查找与自己定义的字符串相同的字符串'. 如网页数据提取:自定义一个规则将网页中的内容按自己的规则提取出需要的东西。

目前在python 中,正则的使用通过re模块来实现,help(re) 查看详细介绍.

可以为想要匹配的相应字符串集指定规则;该字符串集可能包含英文语句、e-mail地址、TeX命令或任何你想搞定的东西。你也可以使用 RE 以各种方式来修改或分割字符串。正则表达式模式被编译成一系列的字节码,然後由用 C 编写的匹配引擎执行。在高级用法中,也许还要仔细留意引擎是如何执行给定 RE ,如何以特定方式编写 RE 以令生产的字节码运行速度更快。

############################ 元字符 ###########################

一:字符匹配

1.普通字符匹配

123和123匹配

2.元字符匹配(help(re)中有详细说明)

元字符有以下几类:

1) 代表特殊含义的有:‘\’和‘.’ 两个

2) 有6个是字符类的:\d 、\D、\s、\S、\w、\W

3) 有四个位置类:\b、\B、\A、\Z、以及 (^,$)

4) 重复 的有: *、+、?、{}

5) 用于分组: ()

6) 可选: |、[]

7) 6个编译选项:I、L、M、S、U、X

分别介绍其含义:

"." 表示任意字符

"^ " 表示字符串的起始、行首:>>>str='123,321,234,432,123'

>>> ss='123'

>>> re.findall(ss,str) //从str中查找123

['123', '123']

>>>ss='^123'

>>>re.findall(ss,str)

['123'] #123是行首的那个

"$" 表示字符串的结束

>>>ss='123$'  将匹配最后的那个123

+   表示匹配一或更多次

*  重复匹配0或更多次

?  表示匹配零次或一次-

*?, +?, ?? 符合条件的情况下,匹配的尽可能少//限制*,+,?匹配的贪婪性

{m} 匹配此前的字符,重复m次  如:r='010-\d{8}' 将表示010-后面需要8个0到9的数字

{m,n} m到n次,m,n可以省略

举个例子 ‘a.*b’ 表示a开始,b结束的任意字符串

a{5} 匹配连续5个a

[ ]

》 表示一系列字符 [abcd] 表a,b,c,d  注:ss = r'a[bcd]ef' ,将表示ss=abef 或acef或adef

[0-9] 表示0到9 [a]

》 补集匹配不在区间内的字符:[^123] ,表示将匹配除了123的其它字符

| A|B 表示A或者B , AB为任意的正则表达式 另外|是非贪婪的如果A匹配,则不找B

(…) 这个括号的作用要结合实例才能理解, 用于提取信息

\d [0-9] 匹配任何十进制数 [0-9]

\D 非 \d 匹配任何非十进制数 [^0-9]

\s 表示字符   [\t\n\r\f\v]

\S 非字符   [^\t\n\r\f\v]

\w 匹配任何字母数字字符[a-zA-Z0-9_]

\W 非 \w

--------------------------------------

6 个正则表达式的编译标志:

I (IGNORECASE) 用于不区分大小的匹配

L (LOCALE) 使得特殊的序列(如词和空格)与语言设置相关

M (MULTILINE) 意味着在多行中搜索该模式,这样 ˆ 可以匹配字符串的开始位置和每一个换行符后面的位置,$ 可以匹配每一个换行符前面的位置和字符串的结束位置

S (DOTALL) 强制使用点专用字符 (.) 匹配任意字符,包括换行符

U (UNICODE) 使得特殊的序列可以感知 Unicode

X (VERBOSE) 可以增强您编写的正则表达式的可读性。要一次使用多个标志,只需将它们加在一起即可 — 如 re.compile("Oracle", re.I+re.S+re.M)。

M属性介绍:

>>> s = '''

... baidu glgoo cnblogs

... cnblogs

... baidu 163 baidu

... glgoo cnblogs

... '''

>>> r = r'^glgoo'

>>> re.findall(r,s)

[]

>>> re.findall(r,s,re.M)

['glgoo']

X属性介绍

>> s = '''

... \d{3,4}

... -?

... \d{8}

... '''

>>> re.findall(s,'321-12345678')

[]

>>> re.findall(s,'321-12345678',re.X)

['321-12345678']

>>>s

'\n\\d{3,4}\n-?\n\\d{8}\n'

用'''定义的字符串存储时是用\n链接的,

python特殊含义符号_python 正则表达式中的特殊符号介绍相关推荐

  1. python re正则查找_python正则表达式 - re

    1,匹配符号 基本元字符 . : 任意字符,除了\n,flags设置为DOTALL(S)可以让.匹配\n |:逻辑或 \:转义 ():捕获组 空白字符 [\b] : 回退 \f : 换页 \n : 换 ...

  2. python如何识别特殊字符_python正则表达式--特殊字符

    正则表达式-特殊表达式含义 正则表达式的字母和数字表示他们自身,但多数字母和数字前加一个反斜杠时会拥有不同的含义. 下面列出了正则表达式模式语法中的特殊元素. 1.普通字符集 1) \w 匹配字母数字 ...

  3. python 正则表达式取反,python正则取反_Python正则表达式-基础

    Python正则表达式-基础 python使用正则,需要先引入re模块 import re 匹配符 单个字符表达式 含义 [0-9] 0123456789任意之一 [a-z] 小写字母任意之一 [A- ...

  4. python 正则式替换_python 正则表达式参数替换实例详解

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

  5. python字典取值_python 字典中取值的两种方法小结

    python 字典中取值的两种方法小结 如下所示: a={'name':'tony','sex':'male'} 获得name的值的方式有两种 print a['name'],type(a['name ...

  6. python打印特殊符号_python plt可视化——打印特殊符号和制作图例代码

    1.打印特殊符号 matplotlib在公式书写上面跟latex很相似,接下来我们就特殊符号,上标下标来具体展示一下.import matplotlib.pyplot as plt x = [i+1 ...

  7. php无符号整数转有符号整数,PHP中把有符号整型转换为无符号整型方法_PHP教程...

    PHP中把有符号整型转换为无符号整型方法 这篇文章主要介绍了PHP中把有符号整型转换为无符号整型方法,转换的方法很简单,本文直接给出转换方法,需要的朋友可以参考下 在一个短地址项目中,根据六位字符与I ...

  8. java 无符号右移_java中的无符号移位运算

    1. 无符号右移   >>>  或 >>> = 无符号右移(>>>)跟右移(>>)运算符不一样. 右移不改变数的正负. 对于一个正数, ...

  9. php 有符号整数,PHP中把有符号整型转换为无符号整型方法

    这篇文章主要介绍了PHP中把有符号整型转换为无符号整型方法,转换的方法很简单,本文直接给出转换方法,需要的朋友可以参考下 在一个短地址项目中,根据六位字符与ID的相互映射的算法,当ID超过214748 ...

最新文章

  1. 例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard(a.k.a. Beiju Text), UVa 11988)
  2. 搞网络都应该知道的12条基本命令
  3. mysql 实验论证 innodb表级锁与行级锁
  4. 新浪微博授权认证过程
  5. 牛客题霸 最少素数拆分 C++题解/答案
  6. InnoDB架构,一幅图秒懂!
  7. vue常用的按键修饰符
  8. 【NOIP2013】【Luogu1969】积木大赛(贪心,差分)
  9. Linux首次登陆设置root
  10. cannot resolve method ‘println(java.lang.String)
  11. matlab菲涅尔衍射光强分布,矩孔菲涅耳衍射的光强分布.pdf
  12. plc应用与c语言编程区别,PLC编程与应用入门基础知识
  13. centos7 下载软件包
  14. 学校多媒体讲台计算机怎么开,标准多媒体教室多媒体使用方法
  15. java数字转读音_java 数字转汉语读音的程序
  16. Eclipse启动Tomcat 警告: 基于APR的本地库加载失败.错误报告为
  17. 代理服务器使用全攻略(转)
  18. [题目解析]乐乐的数字
  19. 1000句英语经典口语 (1)
  20. MOEAD原理及Python实现、MOEAD实现、基于分解的多目标进化、 切比雪夫方法-(python完整代码)

热门文章

  1. 中级Android面试总结之Android篇
  2. php7应用程序无法启动,window_win7系统打开软件提示应用程序无法启动的故障原因分析及2种解决方法,      nbs - phpStudy...
  3. idea为什么HTML背景变成了黄色的,IDEA强迫症设置背景及取消高亮的屎黄色
  4. 令牌桶限速C++实现
  5. 芝士亲子早教助力孩子成长
  6. 【软件测试-04】Web应用程序测试的测试流程和相关理论知识;
  7. 自然语言处理从入门到应用——自然语言处理的语言模型(Language Model,LM)
  8. 【Spring源码】一:整体流程
  9. 闪存驱动器_为什么不能将大文件复制到高容量闪存驱动器?
  10. 第十二届蓝桥杯C/C++ B组试题 D: 货物摆放