【发布时间】:2022-09-26 04:40:44
【问题描述】:
我试图找出使用sed 来替换_ipx/xxx/ 的正则表达式命令,所以src 最终只是images/logo.webp。
例如,如果我在index.html 中有以下 img 标签:
<img src=\"/_ipx/w_253,f_webp,q_80/images/img.webp\"
alt=\"Testing a Custom Component\"
sizes=\"(max-width: 640px) 100vw, 33vw\"
srcset=\"/_ipx/w_640,f_webp,q_80/images/img.webp 640w, /_ipx/w_253,f_webp,q_80/images/img.webp 253w\" />
我希望 sed 将其替换为:
<img src=\"/images/img.webp\"
alt=\"Testing a Custom Component\"
sizes=\"(max-width: 640px) 100vw, 33vw\"
srcset=\"/images/img.webp 640w, /images/img.webp 253w\" />
根据https://regex101.com,我认为应该这样做:/_ipx\\/.+?\\//gi。但是,当我尝试使用它时,什么也没有发生:
sed -i \'\' -e \'s/_ipx\\/.+?\\//test/gi\' index.html
-
基本问题是您正在尝试使用带有
sed的 PCRE 正则表达式,它不接受这种现代正则表达式方言。特别是,sed不支持非贪婪的.+?。