我编辑了markdown文件并插入了图像。内容是这样的
1. This is some content
![](directory/regist.png)
2. This is some other content ![](directory/user_registered.png)
我想要将内容解析为Hexo资产图像格式。想要的内容如下
1. This is some content
{% asset_img regist.png %}
2. This is some other content {% asset_img user_registered.png %}
我可以使用一些编程代码,如{% asset_img regist.png %}
或python逐行读取文件,找到![](
模式,提取文件名并组合成新的字符串,如java或python。但这似乎并不那么明智。
我还会搜索sed
和regualar express。我现在在sed -i -E 's/!\[(.*?)\]((.*?)\/?(.*?))/\{% asset_img $3 %\}/g' test.md
上工作。但是它不起作用,它会生成新的文件test.md-E
,但没有任何更改。我怎样才能实现我的目标?
发布于 2018-07-19 00:09:02
您可以尝试:
sed -i.bak 's/!\[]([^()]*\/\([^)]*\))/{% asset_img \1 %}/g' file
正则表达式细分:
!\[]
匹配组匹配literally(
匹配左括号[^()]*\/
匹配到并包括最后一个斜杠mark\(
捕获组1的开始[^)]*
匹配到下一个结束parenthesis
- `\)` End of capturing group 1
)
匹配右括号https://stackoverflow.com/questions/51406323
复制相似问题