Ⅰ 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中。