Python查找字符串并替换
我有Python中的字符串:Python查找字符串并替换,python,python-3.x,Python,Python 3.x,我有Python中的字符串: s=“htmlhtl{%static path1%}htmlhtml{%static path2/path3%}htmlhtml” 和变量: path=“www.static.com” 我想从s创建一个新字符串,该字符串将包含在{%static…%}文件夹的标记路径上: "htmlhtl www.static.com/path1 htmlhtml www.static.com/path2/path3 htmlhtml" 我已经打开了python文档,并尝试自己去做
s=“htmlhtl{%static path1%}htmlhtml{%static path2/path3%}htmlhtml”
和变量:
path=“www.static.com”
我想从s创建一个新字符串,该字符串将包含在{%static…%}
文件夹的标记路径上:
"htmlhtl www.static.com/path1 htmlhtml www.static.com/path2/path3 htmlhtml"
我已经打开了python文档,并尝试自己去做,但我甚至无法匹配标记。对于regexp来说,这个任务似乎非常常见。您可以使用
Django
的内置方法或简单的regex来实现相同的功能:
import re
s = "htmlhtl {% static path1 %} htmlhtml {% static path2/path3 %} htmlhtml "
rx = re.compile(r'{% static (?P<path>\S+) %}')
# search for {% static ...%}
s = rx.sub(r'www.static.com/\g<path>', s)
print(s)
# htmlhtl www.static.com/path1 htmlhtml www.static.com/path2/path3 htmlhtml
重新导入
s=“htmlhtl{%static path1%}htmlhtml{%static path2/path3%}htmlhtml”
rx=re.compile(r'{%static(?P\S+)%})
#搜索{%static…%}
s=rx.sub(r'www.static.com/\g',s)
印刷品
#htmlhtl www.static.com/path1 htmlhtml www.static.com/path2/path3 htmlhtml
请参阅工作模式。以下是我使用正则表达式为您提供的信息提供的示例解决方案:
>>> import re
>>> s = "htmlhtl {% static path1 %} htmlhtml {% static path2/path3 %} htmlhtml "
>>> path = "www.static.com"
>>> pat = re.compile(r'\{%\s*static\s+([\w/]+)\s*%\}')
>>> re.sub(pat, path+r'/\1',s)
'htmlhtl www.static.com/path1 htmlhtml www.static.com/path2/path3 htmlhtml '
这是django吗?您得到的错误是什么?如果它是django,您是否在模板中预先执行了{%load static%}?是的,它是django,我想手动执行,并将我的文件设置为字符串,以防止django每次尝试从磁盘读取它。原因是文件太小,客户经常要求他。我不能使用缓存,因为我根本不需要缓存,我的站点只有一个页面,可以通过Angular REST API继续与站点交互。非常感谢。你能给我一些用Python学习regexp的链接吗?@LuchkoSerega很高兴它起作用了。一个好的起点是