替换python中的正则表达式
我有这样一个文本:替换python中的正则表达式,python,django,Python,Django,我有这样一个文本: @110605!~~!Abhay_f!~~!Abhay%20Raj%20Fac!>>! @138547!~~!testvarun!~~!Varun%20Test%20User!>>! @136588!~~!jitendra_pathak!~~!Jitendra%20Pathak!>>! #gffj #varun okjjbbbd 在这个字符串中,我要替换!~ 我使用的是模板标记,我使用了此方法,但对我无效: @register.filte
@110605!~~!Abhay_f!~~!Abhay%20Raj%20Fac!>>! @138547!~~!testvarun!~~!Varun%20Test%20User!>>! @136588!~~!jitendra_pathak!~~!Jitendra%20Pathak!>>! #gffj #varun okjjbbbd
在这个字符串中,我要替换!~使用“
”进行编码>
我使用的是模板标记
,我使用了此方法,但对我无效:
@register.filter("metioned_user_text_encode")
def metioned_user_text_encode(string, args):
search = args.split(args[0])[1]
replace = args.split(args[0])[2]
return re.sub(search, replace, string)
在我的模板中:-
result_data_for_editing.newsText | metioned_user_text_encode:"/l(u+)pin/m\1gen"
您可以使用fileinput模块,它使查找和替换变得简单
import fileinput
with fileinput.FileInput(inputFile, inplace=True, backup='.back') as f:
for line in f:
print(line.replace(textToSearch, textToReplace), end='')
或者您可以使用replace方法
str.replace("!~~!", "")
试试这个:
a = '@110605!~~!Abhay_f!~~!Abhay%20Raj%20Fac!>>! @138547!~~!testvarun!~~!'
b = a.replace(!~~!,'""')
print(b)
除非我完全误解了您的意图,否则您要求的是一件事,但您的代码显示的预期行为与您要求的行为不同。
我将尝试回答这两种情况:
案例1:
您希望得到大量的分隔符,如!~代码>或!>>代码>等,您需要一个正则表达式来用空字符串('
)替换它们
请尝试以下操作:
import re
SEPARATORS = [
'!~~!',
'!>>!',
other separators...
]
@register.filter("metioned_user_text_encode")
def metioned_user_text_encode(string):
return re.sub('|'.join(SEPARATORS), '', string)
说明:
|
regex操作符确保我们的模式将尝试将分隔符
中给出的每个分隔符与给定字符串(s
)匹配
- 将返回每个模式都与任何
分隔符匹配的字符串,替换为空字符串
案例2:
您将收到一系列分隔符,以及这些分隔符的一系列同等大小的替换件。在这种情况下,请尝试:
@register.filter("metioned_user_text_encode")
def metioned_user_text_encode(string, args):
returned_string = string
search = args.split(args[0])[1]
replace = args.split(args[0])[2]
for i in range(len(search)):
returned_string = re.sub(search[i], replace[i], returned_string)
return returned_string
说明:
for
循环将遍历每个分隔符和相应替换的搜索
和替换
列表
- 将在每次迭代中返回
返回的\u字符串
,用搜索[i]
分隔符替换为替换[i]
替换李>
祝你好运:)str.replace(“!~!”,“)
应该可以用。其中,<>代码> STR 是字符串的名称。您是否考虑模板字符串?