首頁  >  文章  >  後端開發  >  Python中以正規表示式實現文字取代的實例

Python中以正規表示式實現文字取代的實例

Y2J
Y2J原創
2017-04-21 15:06:141595瀏覽

這篇文章主要介紹了Python使用正則表達式實現文本替換的方法,結合實例形式分析了Python使用正則表達式實現文本替換的具體操作步驟與相關使用注意事項,需要的朋友可以參考下

2D客戶端程式設計從某種意義上來講就是素材組織,所以,圖片素材組織經常需要批次處理,python一定是最佳選擇,不管是win/linux/mac都有一個簡單的運行環境

舉兩個應用場景

① 如果不是在某個資料夾裡面則將資料夾名稱插入前面

②所有的檔名名稱加上一個前綴

直接看程式碼吧:


# encoding: UTF-8
import re
# 将正则表达式编译成Pattern对象
p = re.compile(r&#39;(?P<folder>(\w+/)*)(?P<filename>\w+\.png)&#39;)
# 使用Pattern匹配文本,获得匹配结果,无法匹配时将返回None
#match = pattern.match(&#39;<key>xxx/duobaojiemian_L/yangpizi.png</key>&#39;)
the_str = """<key>XXXX/duobaojiemian2222_L/duobaojiemian_L/yangpizi.png</key>
 <key>yangpizi2.png</key>
 <key>yangpizi3.png</key> """
for m in p.finditer(the_str):
 # 使用Match获得分组信息
 print m.groupdict()
print &#39;-------------------------------&#39;
#f = lambda m: m.group().find(&#39;XXXX/&#39;) == -1 and &#39;XXXX/&#39;+m.group() or m.group()
def f(m):
 s = m.group()
 return s.find(&#39;XXXX/&#39;) == -1 and &#39;XXXX/&#39;+s or s
def f2(m2):
 d = m2.groupdict()
 return d[&#39;folder&#39;]+&#39;the_&#39;+d[&#39;filename&#39;]
print p.sub(f2, the_str)

關於正規表示式有幾個需要交代的

①. python的正規表示式如果捕獲需要分組則使用這個語法(?Pfff308426a9be30c449782458db52103匹配的正則表達式)

②. re.compile用於編譯正則表達式並返回對象

③. p.finditer傳回所有符合的迭代器

④. p.sub將符合項目傳入回呼函數,並且用回傳值取代文字

⑤. m.groupdict,可以使用則的分組命名取對應的值

以上是Python中以正規表示式實現文字取代的實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn