Python re.search 对 Django 的帮助
Python re.search assistance for Django
我需要通过我正在自定义的 Django 自定义模板标签替换 html 字符串的一部分。
原始格式的字符串如下:
arg = "<a class='login-password-forget' tabindex='1' href='{% url 'account:pwdreset'%}'>Forgot your password?</a>"
我需要使用 re.search() 将 {% url 'account:pwdreset'%}
部分替换为 url 字符串。
我编写的代码很笨拙,如果能找到更好的实现方法,我将不胜感激。
url_string = re.search("{.*?}", arg)
url_string_inner = re.search("'(.+?)'", url_string.group())
add_html = SafeText(''.join([arg.split('{')[0], reverse(url_string_inner.group(1)), arg.split('}')[1]]))
!!更新!!
我运行的解决方案如下:
url_string = re.search("{.*?}", arg)
url_string_inner = re.search("'(.+?)'", url_string.group())
add_html = SafeText(''.join([arg.split('{')[0], reverse(url_string_inner.group(1)), arg.split('}')[1]]))
谢谢四鸟的帮助
如果您只想用 'account:pwdreset'
替换部分,您可以将 re.sub 与捕获组一起使用,并在单引号之间的替换中使用该组
'{%\s*url '([^']*)'%}
import re
pattern = r"'{%\s*url '([^']*)'%}"
s = "<a class='login-password-forget' tabindex='1' href='{% url 'account:pwdreset'%}>Forgot your password?</a>"
print(re.sub(pattern, r"''", s))
输出
<a class='login-password-forget' tabindex='1' href=account:pwdreset>Forgot your password?</a>
我需要通过我正在自定义的 Django 自定义模板标签替换 html 字符串的一部分。
原始格式的字符串如下:
arg = "<a class='login-password-forget' tabindex='1' href='{% url 'account:pwdreset'%}'>Forgot your password?</a>"
我需要使用 re.search() 将 {% url 'account:pwdreset'%}
部分替换为 url 字符串。
我编写的代码很笨拙,如果能找到更好的实现方法,我将不胜感激。
url_string = re.search("{.*?}", arg)
url_string_inner = re.search("'(.+?)'", url_string.group())
add_html = SafeText(''.join([arg.split('{')[0], reverse(url_string_inner.group(1)), arg.split('}')[1]]))
!!更新!! 我运行的解决方案如下:
url_string = re.search("{.*?}", arg)
url_string_inner = re.search("'(.+?)'", url_string.group())
add_html = SafeText(''.join([arg.split('{')[0], reverse(url_string_inner.group(1)), arg.split('}')[1]]))
谢谢四鸟的帮助
如果您只想用 'account:pwdreset'
替换部分,您可以将 re.sub 与捕获组一起使用,并在单引号之间的替换中使用该组
'{%\s*url '([^']*)'%}
import re
pattern = r"'{%\s*url '([^']*)'%}"
s = "<a class='login-password-forget' tabindex='1' href='{% url 'account:pwdreset'%}>Forgot your password?</a>"
print(re.sub(pattern, r"''", s))
输出
<a class='login-password-forget' tabindex='1' href=account:pwdreset>Forgot your password?</a>