python字元匹配
1. python字元串匹配的使用方法有哪些
1. re.match 嘗試從字元串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,match()就返回none。
import re
line="this hdr-biz 123 model server 456"
pattern=r"123"
matchObj = re.match( pattern, line)
2. re.search 掃描整個字元串並返回第一個成功的匹配。
import re
line="this hdr-biz model server"
pattern=r"hdr-biz"
m = re.search(pattern, line)
3. Python 的re模塊提供了re.sub用於替換字元串中的匹配項。
import re
line="this hdr-biz model args= server"
patt=r'args='
name = re.sub(patt, "", line)
4. compile 函數用於編譯正則表達式,生成一個正則表達式( Pattern )對象,供 match() 和 search() 這兩個函數使用。
import re
pattern = re.compile(r'\d+')
5. re.findall 在字元串中找到正則表達式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表。
import re
line="this hdr-biz model args= server"
patt=r'server'
pattern = re.compile(patt)
result = pattern.findall(line)
6. re.finditer 和 findall 類似,在字元串中找到正則表達式所匹配的所有子串,並把它們作為一個迭代器返回。
import re
it = re.finditer(r"\d+","12a32bc43jf3")
for match in it:
print (match.group() )
關於Python字元串匹配的使用方法有哪些,環球青藤小編就和大家分享到這里了,學習是永無止境的,學習一項技能更是受益終身,所以,只要肯努力學,什麼時候開始都不晚。如果您還想繼續了解關於python編程的學習方法及素材等內容,可以點擊本站其他文章學習。
2. 如何利用python語言匹配文本文件中的指定字元串,並將其所在行的後面幾
s="指定字元串"
f=open("文本文件名")
n=int(raw_input("輸入輸出的行數:"))
line=f.readline()
whileline:
ifsinline:
printline
foriinrange(n):
line=f.readline()
ifline:
printline
else:
break
ifnotline:break
line=f.readline()
3. 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相匹配
4. python 字元串正則匹配的問題
h=re.findall("[0-9a-z]+;.*",content)
h是一個list,然後再write就可以了。
5. 請問python如何用正則匹配偶數位置的特定字元串
思路是進行兩次匹配,第一次兩位任意字元,第二次匹配a結尾,替換為b
import
re
def
replace(matched):
return
re.sub('a$',
'b',
matched.group())
s
=
'a12a24a45a767'
re.sub('..',
replace,
s)
6. python正則表達式,找到所有匹配的字元串
m = re.search('hello$','hello world! hello')search()會掃描整個string查找匹配,
match()只有在開始0位置匹配成功的話才有返回,如果不是開始位置匹配成功的話,match()就返回none
7. python如何用正則表達式匹配兩個字元串之間的字元串中的某個字元並進行替換
你好,匹配和替換是兩個操作,你可以分兩步來做。
第一步匹配:
hit=re.search(「(\<question\>\<img.*?question_id=「100」\>)」,inputstr)
第二步替換
result=re.sub(『」』,『\」』,inputstr)
8. 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要慢很多
9. python 字元串 查找 匹配 變數
pat = r'"aaa":(\d*),"bbb":'
改成
pat = r'".+aaa":(\d*),"bbb":'
10. python 字元串匹配
p=re.compile("HELLO",re.I)
即可
re.I是指不區分大小寫,關於正則樓主得好好看看,還有其他的一些參數,比如re.M,re.S等等,具體是什麼意思,樓主去查,不然告訴你又不去看了。自己看看記得牢。