[top]
正規表示式的sub模組,只能能提供正常全匹配,並進行替換。但有時我們需要精確匹配的時候就有點不太適用,比如: 『my_friend and my_friendship 『,我z只是想替換掉 my_friend 的時候,可以使用正則 r』(my_friend)\w』 的檢索來精確找到 『my_friend』,但如果我們要替換 『my_friend』 呢? re.sub 會將 'my_friend 』 全部替換掉,這裡提供了一種通過索引找到目標並精確匹配的方法。
# -*- coding: utf-8 -*-
import re
class
myfriend
: @staticmethod
defnormal_code
(t_str, code, val)
:"""
:param t_str: str
:param code: str
:param val: str
"""try:
regex = re.
compile
(r'(%s)'
% code)
n_str = regex.sub(val, t_str)
return n_str
except exception as e:
print
('error: %s'
% e)
if __name__ ==
"__main__"
: stand_str =
'my_friend and my_friendship '
aim_str =
'my_friend'
my_friend = myfriend(
) new_friend = my_friend.normal_code(stand_str, aim_str,
'000000'
)print
('== new_friend ==: %s'
% new_friend)
執行結果:== new_friend ==: 000000 and 000000ship通過切割字元創併在此拼接的方法,實現指定替換
# -*- coding: utf-8 -*-
import re
class
myfriend
: @staticmethod
defnormal_code
(t_str, code, val, d_index)
:"""
:param t_str: str
:param code: str
:param val: str
:param d_index: int
"""try:
regex = re.
compile
(r'(%s)\w'
% code)
while
true
: my_search = regex.search(t_str)
ifnot my_search:
break
aim_index = my_search.span(
) t_str =
''.join(
[:t_str[aim_index[0]
], val, t_str[
:aim_index[1]
-d_index]])
return t_str
except exception as e:
print
('error: %s'
% e)
if __name__ ==
"__main__"
: stand_str =
'my_friend and my_friendship '
aim_str =
'my_friend'
my_friend = myfriend(
) new_friend = my_friend.normal_code(stand_str, aim_str,
'000000',1
)print
('== new_friend ==: %s'
% new_friend)
執行結果:== new_friend ==: 000000 and my_friendship
hive 字串替換指定字元 字串 替換空格
遇到對字串或者陣列做填充或刪除的操作時,都要想想從後向前操作怎麼樣。請實現乙個函式,把字串 s 中的每個空格替換成 20 如果想把這道題目做到極致,就不要只用額外的輔助空間了!首先擴充陣列到每個空格替換成 20 之後的大小。然後從後向前替換空格,也就是雙指標法,過程如下 i指向新長度的末尾,j指向舊...
python 字串替換 正則
因為看電影字幕有些不必要的想刪除,此段 用於刪除 內的內容。python 中 string的replace函式並不能直接使用 正規表示式,所以我們採取compile的方式 其中re為正則的標準庫。此段 包含 1.檔案的讀入輸出 2.正規表示式的使用 import re out open g and....
Python 正則替換字串
需求 1.替換給定字串中符合正則匹配的子串。2.使用者配置增加 刪減替換規則方便。3.基於裝飾器模式實現。基於re包和裝飾器模式實現。參考裝飾器模式,這資料挺不錯的,有人把設計模式用python都實現了一遍。郵箱正則匹配 email regex r 0 9a za z 0 9a za z com c...