当前位置:  编程技术>python

python re正则表达式模块(Regular Expression)

    来源: 互联网  发布时间:2014-10-09

    本文导语:  模块的的作用主要是用于字符串和文本处理,查找,搜索,替换等 复习一下基本的正则表达式吧  .:匹配除了换行符以为的任意单个字符  *:匹配任意字符,一个,零个,多个都能匹配得到 俗称贪婪模式 +:匹配位于+之前的...

模块的的作用主要是用于字符串和文本处理,查找,搜索,替换等

复习一下基本的正则表达式吧

 .:匹配除了换行符以为的任意单个字符

 *:匹配任意字符,一个,零个,多个都能匹配得到 俗称贪婪模式

+:匹配位于+之前的一个或者多个字符

 |:匹配位于|之前或者之后的字符

 ^:匹配行首

 $:匹配行尾

 ?:匹配位于?之前的零个或者一个字符,不匹配多个字符

 :表示 之后的为转义字符

 []:匹配[]之中的任意单个字符,[0-9]表示匹配0到9任意一个数字

 ():将位于()之内的的内容当作一个整体

 {}:按{}中的次数进行匹配,100[0-9]{3}表示在100之后任意匹配一个3位数(100-999)

python中以开头的元字符:

特殊序列符号
意义 A
只在字符串开始进行匹配 Z
只在字符串结尾进行匹配 b
匹配位于开始或结尾的空字符串 B
匹配不位于开始或结尾的空字符串 d
相当于[0-9] D
相当于[^0-9] s
匹配任意空白字符:[tnrrv] S
匹配任意非空白字符:[^tnrrv] w
匹配任意数字和字母:[a-zA-Z0-9] W
匹配任意非数字和字母:[^a-zA-Z0-9]

正则表达式语法表

语法 意义 说明 "." 任意字符
"^" 字符串开始 '^hello'匹配'helloworld'而不匹配'aaaahellobbb' "$" 字符串结尾 与上同理 "*" 
0 个或多个字符(贪婪匹配)
匹配chinaunix "+"
1 个或多个字符(贪婪匹配)
与上同理
"?"
0 个或多个字符(贪婪匹配)
与上同理
*?,+?,??
以上三个取第一个匹配结果(非贪婪匹配) 匹配
{m,n}
对于前一个字符重复m到n次,{m}亦可
a{6}匹配6个a、a{2,4}匹配2到4个a {m,n}?
对于前一个字符重复m到n次,并取尽可能少
‘aaaaaa'中a{2,4}只会匹配2个 "\"
特殊字符转义或者特殊序列
[]
表示一个字符集 [0-9]、[a-z]、[A-Z]、[^0] "|"
或 A|B,或运算 (...)
匹配括号中任意表达式
(?#...)
注释,可忽略
(?=...)
Matches if ... matches next, but doesn't consume the string.
'(?=test)'  在hellotest中匹配hello (?!...)
Matches if ... doesn't match next.
'(?!=test)'  若hello后面不为test,匹配hello
(? Matches if not preceded by ... (must be fixed length).
'(?test'  在hellotest中不匹配test

匹配的标志和含义

标志 含义 re.I 忽略大小写 re.L 根据本地设置而更改w,W,b,B,s,S的匹配内容 re.M 多行匹配模式 re.S 使“.”元字符匹配换行符 re.U 匹配Unicode字符 re.X 忽略需要匹配模式中的空格,并且可以使用"#"号注释

文本内容(提取Linux下的password文件)

man:x:6:12:man:/var/cache/man:/bin/nologin

re模块中有3个搜索函数,每个函数都接受3个参数(匹配模式,要匹配的字符串,进行匹配的标志),如果匹配到了就返回一个对象实例,么有就返会None.

findall():用于在字符串中查找符合正则表达式的字符串,并返回这些字符串的列表

search():搜索整个字符串,返回对象实例

match():只从第一个字符开始匹配,后面的不再匹配,返回对象实例

lovelinux@LoveLinux:~/py/boke$ cat text 
man:x:6:12:man:/var/cache/man:/bin/sh
lovelinux@LoveLinux:~/py/boke$ cat test.py
#/usr/bin/env python
#coding:utf-8
import re
with open('text','r') as txt:
 f = txt.read()
 print re.match('bin',f)
 print re.search('bin',f).end() 
lovelinux@LoveLinux:~/py/boke$ python test.py 
None
34
lovelinux@LoveLinux:~/py/boke$ vim test.py
lovelinux@LoveLinux:~/py/boke$ python test.py 
None


返回是对象实例有2个方法,

start():返回记录匹配到字符的开始索引 

end():返回记录匹配到字符的结束索引

lovelinux@LoveLinux:~/py/boke$ python test.py 
None
31
34
lovelinux@LoveLinux:~/py/boke$ cat test.py 
#/usr/bin/env python
#coding:utf-8
import re
with open('text','r') as txt:
 f = txt.read()
 print re.match('bin',f)
 print re.search('bin',f).start()
 print re.search('bin',f).end()


    
 
 

您可能感兴趣的文章:

  • Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法
  • python正则表达式去掉数字中的逗号(python正则匹配逗号)
  • Python 匹配任意字符(包括换行符)的正则表达式写法
  • python 正则式使用心得
  • python ip正则式
  • python 正则表达式 反斜杠(/)的麻烦和陷阱
  • python正则表达式判断字符串是否是全部小写示例
  • Python常用正则表达式符号浅析
  • python正则表达式re模块详解
  • python使用正则表达式检测密码强度源码分享
  • python正则匹配抓取豆瓣电影链接和评论代码分享
  • python正则匹配查询港澳通行证办理进度示例分享
  • python正则分组的应用
  • Python模块学习 re 正则表达式
  • python正则表达式修复网站文章字体不统一的解决方法
  • python实现统计汉字/英文单词数的正则表达式
  • python正则表达式抓取成语网站
  • python 正则式 概述及常用字符
  • python 正则表达式 概述及常用字符
  • Python中正则表达式的用法实例汇总
  • Python正则表达式的七个使用范例详解
  • python实现问号表达式(?)的方法
  • Python 执行字符串表达式函数(eval exec execfile)
  • python基础教程之lambda表达式使用方法
  • python之yield表达式学习
  • python 中的列表解析和生成表达式
  • python中 ? : 三元表达式的使用介绍
  • Python正则表达式介绍
  • Python 中文正则表达式笔记
  • python的正则表达式re模块的常用方法
  • PYTHON正则表达式 re模块使用说明
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 让python同时兼容python2和python3的8个技巧分享
  • Python不使用print而直接输出二进制字符串
  • 使用setup.py安装python包和卸载python包的方法
  • Python中实现json字符串和dict类型的互转
  • 不小心把linux自带的python卸载了,导致安装一个依赖原python的软件不能安装,请问该怎么办?
  • python异常信息堆栈输出到日志文件
  • Python开发者社区整站源码 Pythoner
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • python读取csv文件示例(python操作csv)
  • Python namedtuple对象json序列化/反序列化及对象恢复
  • python基础教程之python消息摘要算法使用示例
  • Python获取网页编码的方法及示例代码
  • 新手该如何学python怎么学好python?
  • Python异常模块traceback用法举例
  • 使用python删除nginx缓存文件示例(python文件操作)
  • python之平台独立的调试工具winpdb介绍
  • python学习手册中的python多态示例代码
  • 基于Python的Html/xml解析库Beautiful Soup 4.2.1发布
  • 请教:system("C:\python2.4\python.exe C:\aa.py");该语句有何错误?为什么运行界面一闪就消失了并且没有运行完,请给出正确语句!
  • 测试Python内部类型及type和isinstance用法区别
  • python版本的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3