Ⅰ python字符串匹配方法如何使用
字符串是python中常见的一种对象,使用的方法也很简单,只需要用引号引起来就可以看做是一个字符串,Python字符串匹配有6种方法那么Python字符串匹配方法如何使用,感兴趣的小伙伴们快来学习一下吧!
Ⅱ python 正则表达式,怎么从字符串中匹配成组的所有结果
匹配所有结果的python程租迅序如下(注意图中源前塌代码的缩进)
import re
a="lege.teeth34eatedecdeath#e0t~"
regex='(.)e(.)t(.)'弊悔此
result=[]
for i in range(len(a)-4):
b=a[i:i+5]
obj=re.match(regex,b)
if obj:
result.append((obj.group(1),obj.group(2),obj.group(3)))
print(result)
Ⅲ python 字符串匹配
p=re.compile("HELLO",re.I)
即可
re.I是指不区分大小写,关于正则雀御楼主得好好看看,还有其他的一些参数,比如re.M,re.S等吵渣等,具体是什么意思,楼主去查,不然告诉你又不去看了。自升岁悄己看看记得牢。
Ⅳ python正则匹配和字符串匹配,哪个效率更高
$ python -m timeit "import re; pat = re.compile(r'llo'); pat.search('hello');"
# 编译过的 re
$ python -m timeit -s "import re; pat = re.compile(r'llo');" "pat.search('hello')"
1000000 loops, best of 3: 0.234 usec per loop
# 字符串匹配
$ python -m timeit "'hello'.index('llo')"
1000000 loops, best of 3: 0.214 usec per loop
# 单纯地判断是否存在匹配
$ python -m timeit "'llo' in 'hello'"
10000000 loops, best of 3: 0.0495 usec per loop
######## 忽略大小的匹配
python -m timeit -s "import re; pat = re.compile(r'llo', re.IGNORECASE);" "pat.search('helLo')"
1000000 loops, best of 3: 0.387 usec per loop
###### 没区别...
$ python -m timeit -s "tomatch='llo'" "'heLlo'.lower().index('llo')"
1000000 loops, best of 3: 0.373 usec per loop
在 反复 查找同一字符串的情况下字符串匹配高效一点点,可以忽略不计。
如果只是 单次 匹配,或者只是查找是否有匹配的情况下regex要慢很多
Ⅳ python正则表达式匹配字符串的问题
完整代码: #!/usr/bin/python# -*- coding: utf-8 -*-
"""
Function:
python正则表达式则猛让匹配字符串的问题?
Author: Crifan LiVersion: 2012-12-08
Contact: admin at crifan dot com
"""
import re;
txt ="bn','dd_ff');xm_a([1,'zhangming',0,2,'yuwenjige','lishijige',1,0,3,1,0,0.999,1,1,0,0]);xm_a([2,'wangmeng',0,2,'shuxuejige','dilijige',1,0,3,1,0,0.999,1,1,1,0]);xm_a([3,'wangli',0,2,'shuxuejige','dilijige',1,0,2,0,0,0.999,1,1,1,0]);zuobi(6,3,'4:5');fg_gh('xxx','vb_4');xm_a([4,'dashan',0,2,'huaxuejige','yingyujige',1,0,3,1,1,0.999,0,1,0,0]);</";
#注:此处用到了 前向否定匹配#不了解的,可以参考:
#【教程】详解Python正则表达式之: (?!…) negative lookahead assertion 前向否定匹配 /前向否定断言
jige = re.findall("xm_a\(\[\d+,'(\w+)',[^\(\)\[\]]+\]\);(?!zuobi)", txt);
print jige; #['zhangming', 'wangmeng', 'dashan']
另外,感兴趣的,可以去看我写的系列的教程:
【教程】详解Python正则表达式
(此处不给贴地址,请孙局自己用google搜标题,即可找知模到帖子地址)
Ⅵ 在python中,字符串如何进行全字符匹配
import re pattern = re.compile("(?=([a-z]+ [a-z]+))")arry = pattern.findall("a b c d e f g h")
(?=...)匹配不会消耗字符
Ⅶ python正则匹配和字符串匹配,哪个效率更高
代码如下:
# -*- coding: cp936 -*-
import re
string = "xxxxxxxxxxxxxxxxxxxxxxxx entry '某某内容' for aaaaaaaaaaaaaaaaaa"
result = re.findall(".*entry(.*)for.*",string)
for x in result:
print x
# '某某内容'
正则表达式的用法如下:
## 总结
## ^ 匹配字符串的开始。
## $ 匹配字符串的结尾。
## \b 匹配一个单词的边界。
## \d 匹配任意数字。
## \D 匹配任意非数字字符。
## x? 匹配一个可选的 x 字符 (换言之,它匹配 1 次或者 0 次 x 字符)。
## x* 匹配0次或者多次 x 字符。
## x+ 匹配1次或者多次 x 字符。
## x{n,m} 匹配 x 字符,至少 n 次,至多 m 次。
## (a|b|c) 要么匹配 a,要么匹配 b,要么匹配则昌穗 c。
## (x) 一般情况下表示一个记忆组 (remembered group)。你可迅老以利用 re.search 函数返回对象的 groups() 函数获取它的值。
## 正则表孙卜达式中的点号通常意味着 “匹配任意单字符”
Ⅷ python 原始字符串匹配问题
其实,你只要看一下rhas和has的内容就知道了,print一下也可以看到不同点
rhas中的\n因为前面有r的原因,不代表回车弯则塌换行,而分别是字符\和n。要匹配的话应该这么写: r"hello\\n\nworld"或者"hello\\\\n\nworld"
我想令你困惑的应该是t和s在与has的匹配中为什么一样的吧?这主要埋圆是因为在re中,会重新解析字符串,盯春t中的字符\n在重新解析时转化为了回车
如果s='hello\\n\\nworld'也是可以与has匹配的
同样的情况 t = r"hello\\n\\nworld"或者"hello\\\\n\\nworld"也可以与rhas相匹配
Ⅸ 说说在 Python 中,如何找出所有字符串匹配
Regex 对象有一个 findall() 方法,它会返回包含所查找字符串的所有匹配。这与 search() 方法明塌败显不同,search() 将返回一个 Match 对象,其中包含被查找字符串中的 “ 第一次 ” 匹配文本。请看以下示例,注意区分:
运行结果:团芦颤
如果调用 findall 的正则表达式不存在分组(比如上例),那么方法 findall() 将返回一个匹配字符串的列表,例如上例的 ['0591-83822032', '0591-83822033']。
如果调用 findall 的正则表达式存在分组,那么方法 findall() 将返回一个字符串元组的列表(每个分组对应一个字符串),请看下哗伍例:
运行结果:
Ⅹ python正则表达式,这样的字符串怎么匹配
根据提问者的问题,解答如下:
#查找所有除最后一个非zuobi姓名
xingmings=re.findall("(?isu)'([^']+?)']);cj",txt)
xingming_last=re.search("(?isu)'([^']+?)']);$",txt)
ifxingming_last:xingmings.append(xingmings[1])
第一行:查找所有满足条件的姓名,查找结果不包括txt的最后一个;
第二行:匹配txt的最后一个;
第三行:如果最后一个满足条件,则追加到xingmings中。