本文以例子的形势,介绍如何在python中使用正则表达式。

Example1

#!/usr/bin/python

import re
import sys pattern = re.compile(r'[a-zA-Z]+\s+[0-9]+') match = pattern.match(u"ni 12222") print match
if match:
print match.group()

output:

ni 12222

re.match用法

re.match(pattern, string, flags=0)

参数

  • patten : 正则表达式
  • string: 要匹配的表达式
  • flags: 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等,可参考http://www.runoob.com/python/python-reg-expressions.html#flags

返回值

匹配成功re.match方法返回一个匹配的对象,否则返回None。

可以使用group或groups等函数查看匹配结果。

  • group([group1, …]):

    获得一个或多个分组截获的字符串;指定多个参数时将以元组形式返回。group1可以使用编号也可以使用别名;编号0代表整个匹配的子串;不填写参数时,返回group(0);没有截获字符串的组返回None;截获了多次的组返回最后一次截获的子串。

  • groups([default]):

    以元组形式返回全部分组截获的字符串。相当于调用group(1,2,…last)。default表示没有截获字符串的组以这个值替代,默认为None。

Example2

#!/usr/bin/python
# -*- coding: utf-8 ------*------- import re
import sys pattern = re.compile(r'([a-zA-Z]+)\s+([0-9]+)') match = pattern.match(u"ni 12222") print match
if match:
print "group():", match.group()
print "group(1):", match.group(1)
print "group(2)", match.group(2)
print "groups()", match.groups()

output:

group():ni 12222

group(1):ni

group(2):12222

groups():(u'ni', u'12222')

re.match与re.search的区别

re.search参数和使用方法同re.match。

其区别是:

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

参考

http://www.runoob.com/python/python-reg-expressions.html

https://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

最新文章

  1. [AlwaysOn Availability Groups]使用Powershell监控AlwayOn健康
  2. HTML学习
  3. Shell scripts to Create a local dir base on the time.
  4. java方法重载(overload)、重写(override);this、super关键简介
  5. ASP.net MVC 学习笔记(一)-一些不同点
  6. BEA-WEBLOGIC ---http://www.beansoft.biz/weblogic/docs92/index.html
  7. Virtualizing WrapPanel VS toolkit:WrapPanel
  8. Android学习----Android Studio 技巧汇总
  9. .net—— webservice的新建、发布、使用(最全、最简单)【原创】
  10. 剑指offer面试题14-调整数组顺序使奇数位于偶数前面
  11. 关于BDD100k数据输入处理mask变为56*56
  12. Oracle优化器基础知识之访问数据的方法
  13. canner CMS 系统 (公司在台湾) https://www.canner.io/
  14. js 库
  15. switchyomega插件的基本使用
  16. 7.翻译:EF基础系列---EF中的实体类型
  17. 【Hibernate学习笔记-4】在hibernate.cfg.xml中配置C3P0数据源
  18. 远程监视jboss应用java内存的配置
  19. java并发编程实战:第十五章----原子变量与非阻塞机制
  20. PHP之string之addcslashes()函数使用

热门文章

  1. xmind visio mindmanager edraw比较
  2. CCF 2015-03-4 网络延时
  3. Oracle 固定执行计划-使用SPM(Sql Plan Management)固定执行计划
  4. Java——IO类,字节流写数据
  5. Android Touch事件之一:Touch事件在父ViewGroup和子View之间的传递篇
  6. 对HTML(HyperText Markup Language)的认识以及总结
  7. “开始菜单”按钮今年8月将重回Windows 8
  8. API - jQuery之操作cookie(转)
  9. [转载]三款SDR平台对比:HackRF,bladeRF和USRP
  10. 一起来点React Native——常用组件之Image