替换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 是字符串的名称。您是否考虑模板字符串?