python 基础 8.3 match方法和search方法

一,正则对象的split 方法

split(string[,maxsplit])

按照能够匹配的字串讲string 分割后返回列表。maxsplit 用于指定最大分割次数,不指定将全部分割。来查找符合对象的字字符.

#/usr/bin/python

#coding=utf-8

#@Time   :2017/11/18 20:52

#@Auther :liuzhenchuan

#@File   :re 的matche 和 seach.py

import re

print ‘正则的常用方法‘

a = re.compile(r‘\d‘)

print dir(a)

print ‘##‘*30 + ‘\n‘

>>>

正则的常用方法

[‘__class__‘, ‘__copy__‘, ‘__deepcopy__‘, ‘__delattr__‘, ‘__doc__‘, ‘__format__‘, ‘__getattribute__‘, ‘__hash__‘, ‘__init__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘findall‘, ‘finditer‘, ‘flags‘, ‘groupindex‘, ‘groups‘, ‘match‘, ‘pattern‘, ‘scanner‘, ‘search‘, ‘split‘, ‘sub‘, ‘subn‘]

#1 match 方法--匹配 .match(string[,pos[,endpos]])

#string:匹配使用的文本

#pos:文本中正则比比表达式开始搜索的索引。及开始搜索 string 的下标

#endpos:文本中正则表达式结束搜索的索引

#如果不指定破损,默认从开头匹配,如果匹配不到,直接返回None

print ‘##match 匹配的应用‘

a = ‘hello world hello liu‘

#正则匹配除 hello world 与 hello liu

reg = re.compile(r‘((hello w.*)(hello l.*))‘)

result = reg.match(a)

print result.groups()

print ‘##‘*30+ ‘\n‘

>>>

##match 匹配的应用

(‘hello world hello liu‘, ‘hello world ‘, ‘hello liu‘)

############################################################

print ‘##match 添加了起始位置和结束位置,match(str,2,)起始位置2,到最后结束‘

b = ‘aa‘ + a

print ‘字符串b为:‘+ b

result2 = reg.match(b,2,)

reg = re.compile(r‘((hello w.*)(hello l.*))‘)

print result2.groups()

print ‘##‘*15

>>>

##match 添加了起始位置和结束位置,match(str,2,)起始位置2,到最后结束

字符串b为:aahello world hello liu

(‘hello world hello liu‘, ‘hello world ‘, ‘hello liu‘)

##############################

print ‘#match写上起始位置与结束位置可以根据字符串b匹配除正则。或者用 \w 也可以匹配出‘

reg = re.compile(r‘\w*((hello w.*)(hello l.*))‘)

result3 = reg.match(b)

print result3.groups()

print ‘##‘*30

>>>

#match写上起始位置与结束位置可以根据字符串b匹配除正则。或者用 \w 也可以匹配出

(‘hello world hello liu‘, ‘hello world ‘, ‘hello liu‘)

############################################################

#正则对象 search() 方法

这个方法用于查找字符串中可以匹配成功的字串。从string的pos 下标处尝试匹配pattern,如果pattern结束时认可匹配,在返回一个match对象:若无法匹配,则将pos加1后重新尝试匹配,指导pos=endpos 时仍无法匹配范虎None

b = ‘aahello world hello liu‘

reg = re.compile(r‘((hello w.*)(hello l.*))‘)

result4 = reg.search(b)

print result4

print result4.groups()

>>>

<_sre.SRE_Match object at 0x037993E0>

(‘hello world hello liu‘, ‘hello world ‘, ‘hello liu‘)

时间: 2024-10-10 09:40:05

python 基础 8.3 match方法和search方法的相关文章

JavaScript中的match方法和search方法

search在一个字串对象(string object)中查找关键词字串(规范表达式,regular expression),若匹配(即在目标字串中成功找到关键词)则返回关键词在目标字串中第一次出现的位置序列,反之,如果不匹配,就返回-1.以下示例在目标字串"乐猪网是一个编程入门网站,一个学习编程的乐园!"中查找字母"编程",返回值为6,因为字母"编程"第一次出现时其常规序列排在第七位,而JS从0开始起算,字母"乐"序列为0,

正则表达式match方法和search方法

正则表达式, //match() 方法可在字符串内检索指定的值 找到返回相关数据,找不到返回null var part = /Box/ig; var str = "this is box,is a Box"; console.log(str.match(part)); //在str中去匹配查找是否有Box,有返回相关的信息 // 返回来的是数组 ["box","Box"] {ma qi} //使用search来查找匹配的数据,(找到返回匹配对应的

基础回顾:get方法和set方法(类的继承多态)

基础回顾:get方法和set方法 定义类成员变量时,可以在@interface中定义,也可以在@implementation中定义: 在@interface中声明,成员变量的状态是受保护的,即“@protected”: 在@implementation中声明,成员变量的状态是私有的,即“@private” 在类的外面,是无法直接访问成员变量的,只有将成员变量修改为@public时,才可以外部访问. 使用@public时,访问成员变量使用“->”,如: time->hour=25; 但使用@pu

jQuery基础教程之is()方法和has() 方法

is()方法 —— 用于筛选 语法: jQueryObject.is( expr )返回值: is()函数的返回值为Boolean类型.true或者false.只要其中至少有一个元素符合给定的表达式就返回true,否则就返回false.说明: is()方法用于判断与当前jQuery对象相匹配的元素是否符合指定的表达式.这里的表达式包括:选择器(字符串).DOM元素(Element).jQuery对象.函数.可以看出来,它是根据选择器.DOM元素或jQuery 对象来检测匹配元素集合. has()

4.0 OC基础语法-set方法和get方法

set方法和get方法的使用场合@public的成员可以被随意赋值,应该使用set方法和get方法来管理成员的访问(类似机场的安检.水龙头过滤,过滤掉不合理的东西),比如僵尸的生命值不能为负数set方法作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值命名规范:方法都是以set开头,而且后面跟上成员变量名,成员变量名的首字母必须大写形参名称不要跟成员变量同名get方法作用:返回对象内部的成员变量命名规范:get方法的名称一般就跟成员变量同名成员变量的命名规范成员变量都以下划线 _ 开头可

wait方法和sleep方法的区别

一.概念.原理.区别 Java中的多线程是一种抢占式的机制而不是分时机制.线程主要有以下几种状态:可运行,运行,阻塞,死亡.抢占式机制指的是有多个线程处于可运行状态,但是只有一个线程在运行. 当有多个线程访问共享数据的时候,就需要对线程进行同步.线程中的几个主要方法的比较: Thread类的方法:sleep(),yield()等 Object的方法:wait()和notify()等 每个对象都有一个机锁来控制同步访问.Synchronized关键字可以和对象的机锁交互,来实现线程的同步. 由于s

2016/05/23 thinkphp M方法和D方法的区别

M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 M方法: 对数据表进行简单的 CURD 操作而无复杂的业务逻辑时 只有个别的表有较为复杂的业务逻辑时,将 M方法 与实例化 CommonModel 类进行结合使用 M方法 甚至可以简单看着就是对参数表名对应的数据表的操作: $User = M('User'); 使用D方法 如果是如下情况,请考虑使

ThinkPHP的D方法和M方法的区别

M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 M方法: 对数据表进行简单的 CURD 操作而无复杂的业务逻辑时只有个别的表有较为复杂的业务逻辑时,将 M方法 与实例化 CommonModel 类进行结合使用M方法 甚至可以简单看着就是对参数表名对应的数据表的操作: $User = M('User'); 使用D方法 如果是如下情况,请考虑使用

M方法和D方法的区别

ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 M方法: 对数据表进行简单的 CURD 操作而无复杂的业务逻辑时 只有个别的表有较为复杂的业务逻辑时,将 M方法 与实例化 CommonModel 类进行结合使用 M方法 甚至可以简单看着就是对参数表名对应的数据表的操作: $User = M('User'); 使用D方法 如果是如下情况,请考虑使用 D方法: 需要使用