re正则匹配模块_python

一、re模块

1、模块功能

通过re模块的接口接入正则表达式语言,主要用于匹配字符串。

2、正则表达式元字符以及意义

.  代表任意一个字符(除了换行符\n)

^  以什么开头

$  以什么结尾

*  重复匹配*前面的字符出现0到多次 【0,正无穷】

+  重复匹配+前面的字符1到多次【1,正无穷】

?  重复匹配?前面的字符0或1次【0,1】

{数字}  代表前面的匹配次数,如‘b{3}‘

[]  代表字符集中的字符,或的关系,如‘[a-z]‘,还有取消元字符意义的特殊功能,

  如‘[^123]‘,^放在[]里的最前面,代表取反。

  如[1-5],-放在[]里面,代表一个范围

\与普通字符,代表一定意义如[\d],具体代表意义如下;(但\与特殊自字符,取消特殊性,如[\^])

  \d   匹配所有的数字,相当于[0-9]
  \D   匹配非数字字符,相当于[^0-9]
  \w   匹配数字字母下划线,相当于[0-9a-zA-Z_]
  \W   匹配非数字字母下划线,相当于[^0-9a-zA-Z_]
  \s   匹配任意空白符(空格,换行,回车,换页制表符)相当于[ \f\n\r\t]
  \S   匹配任意非空白符,相当于[^ \f\n\r\t]
  \A   匹配字符串开始,和^区别:\A只匹配行首,在re.M下也不匹配他行行首
  \Z   匹配字符串结束,和$区别:\Z只匹配结束,在re.M下也不匹配他行结束
  \b   匹配单词的边界,空格之间
  \B   匹配非单词的边界,空格之间

()  做分组,弄成整体字符组进行匹配,如‘(bs)‘

  添加组名分组:根据组名查出

  

查找网址的例子:

import reprint(re.findall(‘www.(\w+).com‘,"www.baidu.com")) #[‘baidu‘],得出中间结果print(re.findall(‘www.(?:\w+).com‘,"www.baidu.com")) #[‘www.baidu.com‘],得出所有结果

3、模块的方法

findall():所有结果都返回到一个列表里

search():返回匹配到的第一个对象(object),可以调用group()方法返回结果

    print(re.search(‘www.(\w+).com‘,"www.baidu.com").group())

match():只在字符串开始匹配,只匹配开头符不符合。也是返回一个对象,也用group()返回结果。

split() :分割字符串

    print(re.split(‘k‘,‘sdfkwerkryy‘)) #[‘sdf‘, ‘wer‘, ‘ryy‘]

sub("替换前","替换后","替换的字符串",替换多少个(不写默认全部替换))

    print(re.sub(‘chen‘,‘peng‘,‘chenxiaozanchen‘,1)) #pengxiaozanchen

compile():提高一点点效率,编译规则,再调用

    

finditer() : 得到的结果不是放到list,而是迭代器

    

.

原文地址:https://www.cnblogs.com/chenxiaozan/p/12164382.html

时间: 2024-08-28 21:00:50

re正则匹配模块_python的相关文章

python - re正则匹配模块

re模块 re 模块使 Python 语言拥有全部的正则表达式功能. compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象.该对象拥有一系列方法用于正则表达式匹配和替换. re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数. re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none. # (匹配规则,字符串,特殊标志) re.match(pattern

python中RE正则匹配模块的用法若干

# -*- coding:utf-8 -*-import import reload()('utf-8')= [() for in ['this''that']]   # 编译一个匹配模板对象列表,该列表匹配模板编译源来自一个二元列表= 'Does this text match the pattern?'print 'Test:'' 'for in :                   # 查找每一个模板对象    print 'seeking "%s"-->' % if (

re模块 正则匹配

import re re.M 多行模式 位或的意思 parrterm就是正则表达式的字符串,flags是选项,表达式需要被编译,通过语法.策划.分析后卫其编译为一种格式,与字符串之间进行转换 re模块 主要为了提速,re的其他方法为了提高效率都调用了编译方法,就是为了提速 re的方法 单次匹配 re.compile 和 re.match def compile(pattern, flags=0): return _compile(pattern, flags) 可看到,re最后返回的是_comp

常用的re模块的正则匹配的表达式

07.01自我总结 常用的re模块的正则匹配的表达式 一.校验数字的表达式 1.数字 ^[0-9]\*$ 2.n位的数字 ^\d{n}$ 3.至少n位的数字 ^\d{n,}$ 4.m-n位的数字 ^\d{m,n}$ 5.零和非零开头的数字 ^(0|[1-9][0-9]\*)$ 6.非零开头的最多带两位小数的数字 ^([1-9][0-9]\*)+(\.[0-9]{1,2})?$ 7.带1-2位小数的正数或负数 ^(\-)?\d+(\.\d{1,2})$ 8.正数.负数.和小数 ^(\-|\+)?\

web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签

标签选择器对象 HtmlXPathSelector()创建标签选择器对象,参数接收response回调的html对象需要导入模块:from scrapy.selector import HtmlXPathSelector select()标签选择器方法,是HtmlXPathSelector里的一个方法,参数接收选择器规则,返回列表元素是一个标签对象 extract()获取到选择器过滤后的内容,返回列表元素是内容 选择器规则 //x 表示向下查找n层指定标签,如://div 表示查找所有div标签

php正则匹配用户名必须包含字母和数字且大于6位

php正则匹配用户名必须包含字母和数字且大于6位 UEditor 1.4.3版本中去掉本地自动保存功能 右键菜单没有新建文本文档txt 常见HTTP错误代码大全 http常见状态码 eclipse内存溢出错误 为什么井盖是圆的?--揭开面试题的神秘面目! Linux Centos 6.6搭建SFTP服务器 密码强度检测 JS判断检测用户输入密码强度代码 对程序员来说,提高薪水最好的建议是什么? CSS3仿淘宝右侧固定导航悬浮层 jQuery仿淘宝网登录拖动滑块验证码代码 jQuery单击div更

python正则--re模块常用方法

前面几篇关于正则匹配的文章我用的方法都只有一个re.search 但其实正则re模块提供很多非常好用的方法,我们先来看看re模块都有那些属性方法呢 前面的一堆带_或者大写的就不关注了,主要关注最后面的几个方法 -------------------------------------------------------------------------------------------------------------------------------------------------

正则匹配

python中re模块 1.正则匹配基础知识 (1)通配符. .ython可以匹配 aython,jython,只有一个字符 如果要匹配a.py的话需要进行转义a\.py,r如果这样写a.py那么会匹配成aapy (2)字符集[] [a-z]ython 可以匹配a-z之间任意一个字符 yython [a-zA-Z0-9]ython 匹配a-z,A-Z,0-9的任意字符串 [^p]ython反转匹配,可以匹配除了python的字符串 (3)选择符 | python|perl匹配python和per

Python正则匹配字母大小写不敏感在读xml中的应用

需要解决的问题:要匹配字符串,字符串中字母的大小写不确定,如何匹配? 问题出现之前是使用字符串比较的方式,比如要匹配'abc',则用语句: 1 if s == 'abc':#s为需要匹配的字符串 2 print '匹配成功\n' 现在的问题是s可能是Abc.ABC等等,所以需要大小写不敏感的匹配,如果把需要匹配的模式的大小写进行罗列,那即使是三个字母的短模式也是很麻烦,查了一下,正则表达式re模块中有个参数flags=re.I,这样就可以大小写不敏感的匹配了,示例如下: 1 import re