java 正则表达式 获取img 的width属性并修改它

本文介绍如何使用Java代码修改HTML中的图片标签属性,包括调整宽度、移除尺寸限制及提取图片路径等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        String html ="<img width=100' height='30' src='aa.jpg'/>";
        //这里是修改width的属性为100%
        html = html.replaceAll("(<img[^>]*?)\\s+width\\s*=\\s*\\S+","$1 width=100%");
        System.out.println(html);
        //这里是清除width的属性
        html = html.replaceAll("(<img[^>]*?)\\s+width\\s*=\\s*\\S+","$1");
        html = html.replaceAll("(<img[^>]*?)\\s+height\\s*=\\s*\\S+","$1");
        System.out.println(html);
        //这里是移除img标签
        html = html.replaceAll("<img[^>]*/>", " ");
        System.out.println(html);
//这是截取img标签里的src属性的值,就是图片的路径
 public static List<String> getImgSrc(String htmlStr) {
        String img = "";
        Pattern p_image;
        Matcher m_image;
        List<String> pics = new ArrayList<String>();
//       String regEx_img = "<img.*src=(.*?)[^>]*?>"; //图片链接地址
        String regEx_img = "<img.*src\\s*=\\s*(.*?)[^>]*?>";
        p_image = Pattern.compile(regEx_img, Pattern.CASE_INSENSITIVE);
        m_image = p_image.matcher(htmlStr);
        while (m_image.find()) {
            img = img + "," + m_image.group();
            // Matcher m =
            // Pattern.compile("src=\"?(.*?)(\"|>|\\s+)").matcher(img); //匹配src
            Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img);
            while (m.find()) {
                pics.add(m.group(1));
            }
        }
        return pics;
    }

 

Java获取字符串中完整的`<img>`标签,可以借助正则表达式来提取匹配的内容。以下是详细的步骤及其实现: ### 实现思路 1. **分析HTML结构**: `<img>` 标签通常包含各种属性(如 `src`, `alt`, `width`, `height` 等),但其核心形式是以 `<img ... >` 的方式存在。 2. **编写正则表达式**:通过设计一个适当的正则表达式模式来匹配整个 `<img>` 标签内容。 - 匹配规则示例:`<img\\s+[^>]*?src\\s*=\\s*['\"]([^'\"]*)['\"][^>]*?>` 这个正则表达式的含义是从 HTML 中查找所有以 `<img` 开头以 `>` 结束的标签,捕获其中的内容。 3. **使用Pattern和Matcher类**:将正则应用到目标字符串上进行匹配。 ```java import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ImgTagExtractor { public static List<String> extractImgTags(String html) { // 定义用于匹配<img>标签的正则表达式 String regex = "<img\\b[^>]*>"; Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(html); List<String> imgTags = new ArrayList<>(); while (matcher.find()) { imgTags.add(matcher.group()); } return imgTags; // 返回找到的所有<img>标签列表 } public static void main(String[] args) { String testHtml = "一些文本 <img src='image.jpg'> 和另一个 <img alt='example' src='another.png'>"; List<String> images = extractImgTags(testHtml); for (String img : images){ System.out.println("找到的图片标签:" + img); } } } ``` 上述程序会输出所有的完整`<img>`标签,例如: ``` 找到的图片标签:<img src='image.jpg'> 找到的图片标签:<img alt='example' src='another.png'> ``` 此方法简单高效地从给定HTML片段抽取出了所有图像标签信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值