Python正则表达式替换img src路径并保留文件名
使用Python正则表达式替换img标签的src路径并保留文件名
要实现替换img标签src中的随机路径、仅保留文件名的需求,Python的re模块可以轻松完成,具体方案如下:
核心思路
通过正则表达式匹配img标签的src属性,捕获路径最后一段的文件名,再将原路径替换为指定域名+捕获到的文件名。
代码实现
import re # 示例输入HTML input_html = '<img src="random/path/with/different/number/of/dirs/myImage.jpg"></img>' # 正则表达式:匹配src属性,捕获最后一个/后的文件名 pattern = r'<img src=".*?/([^"/]+)"' # 替换为指定域名+文件名 replaced_html = re.sub(pattern, r'<img src="http://somedomain.com/\1"', input_html) print(replaced_html) # 输出:<img src="http://somedomain.com/myImage.jpg"></img>
正则表达式说明
.*?/:非贪婪匹配任意字符直到遇到最后一个/,跳过前面的随机层级路径([^"/]+):捕获组,匹配除了"和/之外的所有字符(即完整的文件名,包含扩展名)\1:在替换模板中引用捕获到的文件名分组
兼容无前置路径的情况
如果存在src路径本身没有层级(如<img src="myImage.jpg">),可以调整正则为可选匹配前置路径:
pattern = r'<img src="(?:.*?/)?([^"/]+)"'
其中(?:.*?/)?是非捕获可选组,表示前置路径部分可有可无,确保所有场景都能正确捕获文件名。
内容的提问来源于stack exchange,提问作者lolololol ol
相关产品推荐
相关产品推荐

