如何将图像源中的所有https
字符串替换为http
?
<img src="https
<img src='https
<img title="title" src="https
由于这种类型的组合
"text <img src='https://image.com/img.jpg' /> text".gsub('<img src="https', '<img src="http')
会让https取消替代。
gsub('https', 'http')
不好,因为我不想替换链接,例如。
答案 0 :(得分:2)
使用正则表达式而不是字符串:
mystring = "text <img src='https://image.com/img.jpg' /> text"
mystring.gsub(/\<img src=("|')https.+("|')/){|match| match.gsub('https','http')}
=> "text <img src='http://image.com/img.jpg' /> text"
答案 1 :(得分:1)
如果图片代码只包含<img src="">
(无属性),则可以使用以下代码:
<img.*?src=('|")((?!https)[^"']+)\1
# look for an image tag literally
# look for src=" or src='
# assure that it is no https (negative lookahead)
# capture everything up to the previously captured delimiter (quote/double quote)
需要更换这些字符串。