我尝试搜索文件并将所有找到的路径替换为HTML文件,并指向文件路径和哈希值。
我想搜索类似的内容:
"
我想替换像这样的文件名:
import re
p = re.compile(r'(?P<prefix>(?:\bu8|\b[LuU])?)(?:"(?P<dbl>[^"\\]*(?:\\.[^"\\]*)*)"|\'(?P<sngl>[^\'\\]*(?:\\.[^\'\\]*)*)\')|R"([^"(]*)\((?P<raw>.*?)\)\4"')
s = "\"text'\\\"here\"\nL'text\\'\"here'\nu8\"text'\\\"here\"\nu'text\\'\"here'\nU\"text'\\\"here\"\nR\"delimiter(text\"'\"here)delimiter\""
print(s)
print('--------- Regex works below ---------')
for x in p.finditer(s):
if x.group("dbl"):
print(x.group("dbl"))
elif x.group("sngl"):
print(x.group("sngl"))
else:
print(x.group("raw"))
我已经看过类似的问题。目前我有一个sed&#39;草稿&#39;,它没有按预期工作:
templateUrl: 'path/to/the/file/file.html';
这将上面提到的字符串替换为templateUrl: 'path/to/the/file/file.HASH.html';
我做错了什么?
答案 0 :(得分:0)
试试这个:
$ sed 's/^\(templateUrl:.*\)\(\.html\)/\1.HASH\2/' <<< "templateUrl: 'path/to/the/file/file.html';"
templateUrl: 'path/to/the/file/file.HASH.html';
首先从templateUrl:
开始.html
开始,然后跟踪.html
字符串,并在捕获的字符串之间插入.HASH
。
答案 1 :(得分:0)
请尝试:
echo "templateUrl: 'path/to/the/file/file.html';" |sed -r 's@([^.]+)(.*)@\1.HASH\2@g'
templateUrl: 'path/to/the/file/file.HASH.html';