research用法总结,re.research Python
说到使用规则匹配字符串,不得不说三种常用的匹配检索方法:re.search()、re.match()和re.findall()。
主要区别在于,前两种方法只匹配目标字符串中满足条件一次的正则表达式;re.findall()方法匹配目标字符串中满足条件的所有正则表达式;另外,re.match()只匹配目标字符串的开头是否符合正则表达式,如果开头不符合,匹配失败,函数返回None;而re.search()则不受位置限制。
具体详情请参考:
Python正则表达式
这里要讲的是re.search()方法的一些具体用法,直接到例子:
Import retext=出生于杭州余杭区,在杭州余杭区长大,在杭州余杭区生活了69年。他没有在疫区生活的历史,没有沉溺于贸易和旅游的历史,有饮酒的习惯。白酒:每天500-600ml。他已经喝酒30年了,但没有戒掉。有吸烟习惯,类型:香烟,一天20-30支,已吸烟30年,戒了6年。否认毒物和放射性物质的接触史。“以前在一个矿井里工作。”Pattern=r (吸烟习惯)[,] type [:]香烟[,](每[周月每一天]\d{1,2}-\d{1,2}[枝根]) [,]已吸(\d{1,2}) result=re.search(模式,文字)print(结果)print(类型(结果))print(结果[1])print(类型(结果[1])Print(结果[2])print(结果[3])print(结果[4])print(结果[4组(2))打印(结果。组(3))打印(结果。组(4))打印(结果。组(5))首先简单说说相关代码的意义:
文本是目标字段;Pattern是一个正则表达式,其中圆括号“()”的使用这里指的是捕获分组,即在正则匹配时,圆括号中的匹配文本被编号并存储在内存中以备后用;括号“[]”中的内容表示的是或的关系,例如“,]”表示匹配一个中文逗号“,”或英文逗号“,”;\d{1,2} 表示至少匹配一位,最多匹配两位,即匹配一位或两位;group()方法用于获得相应的分组结果,其中”。group()"和"。组(0)”完全相同。
上述代码执行的结果是:
_sre。SRE _匹配对象;Span=(84,116),match=吸烟习惯,类型:香烟,每天20-30支,吸烟30年,戒烟6年。 Class _sre。‘SRE _火柴’有每天抽‘str’类20-30支烟的习惯,已经戒了30年6年了。类型:香烟,一天20-30支,抽了30年,戒了6年。Class str (吸烟习惯,每天20-30支烟, 30年,戒烟, 6年)class tuple 吸烟习惯class str 每天20-30支烟,戒烟30年6年。我发现了一个有趣的事情,就是“result[1]”和“result.group(1)”的属性和值是完全一样的。也就是说,即使不使用group()方法进行分组,一旦使用re.search(),其内部已经分组,就可以通过 result[i]"(其中I为组号)直接获得对应组的值。这仍然是事实。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。