今天介绍一下Python中常用的正则表达式处理函数。Python的正则表达式主要有两种方法完成模式匹配:『搜索』和『匹配』

re.match

re.match 尝试从字符串的开始全部或者部分匹配某个模式,如:下面的例子匹配第一个单词。import re

text = "PythonTab.com is a good Python website"

m = re.match(r"(\w+)\s", text)

if m:

print m.group(0), '\n', m.group(1)

else:

re.match的函数原型为:re.match(pattern, string, flags)

第一个参数是正则表达式,这里为"(\w+)\s",如果匹配成功,则返回一个Match,否则返回一个None;

第二个参数表示要匹配的字符串;

第三个参数是标致位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

注意:它能够配配的前提是:开始就必须满足匹配条件

re.search

re.search函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回,如果字符串没有匹配,则返回None。import re

text = "PythonTab.com is a good Python website"

m = re.search(r'\Pyt(on)n\s', text)

if m:

print m.group(0), m.group(1)

else:

print 'not search'

re.search的函数原型为: re.search(pattern, string, flags)

每个参数的含意与re.match一样。

re.match与re.search的区别:re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

re.sub

re.sub用于替换字符串中的匹配项。下面一个例子将字符串中的空格 ' ' 替换成 '-' :import re

text = "PythonTab.com is a good Python website"

print re.sub(r'\s+', '-', text)

re.sub的函数原型为:re.sub(pattern, repl, string, count)

其中第二个函数是替换后的字符串;本例中为'-'

第四个参数指替换个数。默认为0,表示每个匹配项都替换。

re.sub还允许使用函数对匹配项的替换进行复杂的处理。如:re.sub(r'\s', lambda m: '[' + m.group(0) + ']', text, 0);将字符串中的空格' '替换为'[ ]'。

re.split

可以使用re.split来分割字符串,如:re.split(r'\s+', text);将字符串按空格分割成一个单词列表。

re.findall

re.findall可以获取字符串中所有匹配的字符串。如:re.findall(r'\w*oo\w*', text);获取字符串中,包含'oo'的所有单词。

re.compile

可以把正则表达式编译成一个正则表达式对象。可以把那些经常使用的正则表达式编译成正则表达式对象,这样可以提高一定的效率。下面是一个正则表达式对象的一个例子:import re

text = "PythonTab is a good Python website"

regex = re.compile(r'\w*on\w*')

print regex.findall(text)   #查找所有包含'on'的单词

print regex.sub(lambda m: '[' + m.group(0) + ']', text) #将字符串中含有'on'的单词用[]括起来。

python常用字符串匹配_伸手党必备之Python正则表达式常用函数相关推荐

  1. python办公小应用_高效办公必备:Python—— 30分钟帮你干完一天的工作!

    热点追踪 /深度探讨/ 实地探访 / 最近经常听到周围的人抱怨:"工作忙,在加班--" 不知不觉,当代职场人早就被"996"支配得体无完肤了,不仅身体吃尽熬夜加 ...

  2. python打印字符金字塔_打印字母金字塔(python实现)

    打印字母金字塔(python实现) 打印字母金字塔(python实现) 打印一个如图所示的金字塔: 思路: 整个过程分为两部分: 第一部分:分行打印(第一个,也就是最外层的for循环). 第二部分:打 ...

  3. python新手入门教程思路-Python新手入门教程_教你怎么用Python做数据分析

    Python新手入门教程_教你怎么用Python做数据分析 跟大家讲了这么多期的Python教程,有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂.很多网上 ...

  4. java 字符串匹配_多模字符串匹配算法原理及Java实现代码

    多模字符串匹配算法在这里指的是在一个字符串中寻找多个模式字符字串的问题.一般来说,给出一个长字符串和很多短模式字符串,如何最快最省的求出哪些模式字符串出现在长字符串中是我们所要思考的.该算法广泛应用于 ...

  5. python生成字符画_使用Python生成ASCII字符画

    使用Python生成ASCII字符画 在很多的网站主页中或者程序的注释中会有一些好看的字符注释画.显得很牛逼的样子 例如: 知乎 _____ _____ _____ _____ /\ \ /\ \ / ...

  6. python图片字符分割_图像分割python

    常用的十大 python 图像处理工具 本文为 AI 研习社编译的技术博客,原标题 : 10 Python image manipulation tools. 作者 | Parul Pandey 翻译 ...

  7. python转换字符编码_转:Python常见字符编码及其之间的转换

    一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...

  8. python生成字符图形_【Python AsciiArt】利用命令行打印出字符图案

    利用字符串生成工具可以方便的打印出自己想要字符图案,以及如何将图片转换为ASCII ART输出. 最终可以用命令行输出各种彩色图像---->> 一般字符图案 我们在使用一些开源软件的时候, ...

  9. 大量的数据做字符串匹配_【重学数据结构与算法(JS)】字符串匹配算法(三)——BM算法...

    前言 文章的一开头,还是要强调下字符串匹配的思路 将模式串和主串进行比较 从前往后比较 从后往前比较 2. 匹配时,比较主串和模式串的下一个位置 3. 失配时, 在模式串中寻找一个合适的位置 如果找到 ...

最新文章

  1. 速卖通关键词挖掘工具_网站优化必备的关键词挖掘工具
  2. 故障处理 软件 需求_如何根据GJB 102A开展软件安全性分析 —— 下篇
  3. scipy 图像处理(scipy.misc、scipy.ndimage)、matplotlib 图像处理
  4. Docker inspect 命令
  5. android cts 编译,使用 Android studio 分析运行 CTS 用例
  6. sap权限激活_宅出职场含金量!SAP 解决方案培训课程线上免费学
  7. 数组名加取地址符的理解
  8. 基于Win32Api创建窗口程序
  9. 2019龙少php泛站群,龙少php泛站群|PHP版站群 全自动泛解析站群程序 赠送教程
  10. CUBA Platform 6.3的新增功能
  11. android实用代码
  12. 【PAT - 甲级1024】Palindromic Number (25分)(大数,模拟)
  13. Activity基础
  14. 彻底理解AMD和CMD
  15. maya中的桥接命令
  16. react里执行shouldComponentUpdate时返回false的后果
  17. ESAPI入门使用方法
  18. MySQL索引数据结构与算法
  19. cmf php,php cmf
  20. buuctf web入门]常见的搜集

热门文章

  1. 用EXCEL计算距平数据
  2. 中国公司使用巴西文字插图介绍产品?
  3. 网站网络营销整体策划方案
  4. Java 详解数字格式化(NumberFormatDecimalFormat)
  5. 第十届Flash开发者大会-深圳
  6. CentOS7.5安装MySQL5.7压缩包
  7. 现货黄金买卖技巧_价格振荡指标(PPO)
  8. Office Word
  9. Dynamic Potential-Based Reward Shaping将势能塑形奖励函数拓展为F(s,t,s‘,t‘)
  10. 深入讲解几种线程安全模型