繁体   English   中英

正则表达式如何替换img标签中的src链接

Regular expression how to replace the src link in img tag

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我尝试了很多方法来做到这一点。 我对正则表达式完全陌生。 我想将所有img src链接替换为其他链接。

我的html文件就是这样的:

<img src="01"></img><img src="02"></img><img src="03"></img>

或者是这样的:

<  img src  =  "01"></img><    img src="02"><    img src = "03"></img>

可能有空格,也可能没有空格</img>

我希望他们像这样:

<div><p><DIV class="a"><img src="01"></img></p></div><div><p><DIV class="a"><img src="02"></img></p></div><div><p><DIV class="a"><img src="03"></img></p></div>

我用它来获取img src链接:

            Pattern p = null;
            Matcher m = null;
            p = Pattern.compile("<img[^>]*src\\s*=\\s*\"([^\"]*)");
            m = p.matcher(mystr);
            while (m.find()) {
                imgIDList.add(m.group(1));
            }

然后我将str列表替换为:ArrayList imgList4Replace = new ArrayList();

我以此为借口替换:

                mystr.replace(("<img[^>]*src\\s*=\\s*\""+imgListReplaceOriginal.get(nIndex)+"([^\"]*)"), imgList4Replace.get(nIndex)+"$2");

只是不起作用。 我花了很多时间进行测试。

并且需要您的帮助。 非常感谢你。

3 个回复

您不能可靠地将正则表达式与HTML / XML一起使用。 您需要一个HTML解析器,例如名称混乱的JTidy (尽管它声称是HTML漂亮打印机,但它也为您提供了文档的DOM视图)

这是代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class ImgTest {
    public static void main(String[] args) {

            String s = "This is a sample<img src=\"test.html\" /> text";
            Pattern p = Pattern.compile("[<](/)?img[^>]*[>]");
            Matcher m = p.matcher(s);
            if (m.find()) {
              String src = m.group();
              System.out.println(src);
            }
            s = s.replaceAll("[<](/)?img[^>]*[>]", "");
            System.out.println(s);
    }
}

这个给你:

private static String replaceSrcs(String str, List<String> srcs) {
    Pattern p = Pattern.compile("(<\\s*img\\s*src\\s*=\\s*\").*?(\"\\s*>)");
    Matcher m = p.matcher(str);
    StringBuffer sb = new StringBuffer();
    int i = 0;
    while (m.find()) {
        m.appendReplacement(sb, "$1" + srcs.get(i++) + "$2");
    }
    m.appendTail(sb);
    return sb.toString();
}

现在您只需要调用它:

replaceSrcs(mystr, imgList4Replace);

它返回您想要的东西。

1 在IMG标签中查找和替换src的正则表达式

我有一个接受字符串(HTML内容)并返回更正字符串的函数。 这是img标签的src。 因此,我能够根据此网站上的其他问题提取img标签的src,但我需要一些帮助来替换src。 这是我到目前为止所拥有的; sImgSrc将是 我需要维护query string ?ID=142 ...

2 正则表达式替换img标签的src属性

我需要一个能正常工作的正则表达式,而我当前的正则表达式正在中断。 目标是 图像的正常src是:Image.png 在悬停时使用jQuery,我动态地找到图像的src并将其替换为ImageName-Dn.png 悬停时将其设置回ImageName.png 我当前的解决 ...

3 用于替换SRC内容的正则表达式 html标签

我对正则表达式不太满意,因此我希望您能通过一个表达式来帮助我,以便仅替换html标记的src属性中双引号之间的内容,即该属性的内容如下: 换句话说:src =“ old content ” =&gt; src =“ new content ” 我在上面有关C#中相同主题的问题中已经 ...

4 正则表达式从IMG标签中找到src

我有一个网页。 从那里我想找到所有IMG标签并获得那些IMG标签的SRC。 这样做的正则表达式是什么。 一些解释: 我正在抓一个网页。 除图像外,所有数据都正确显示。 要解决这个问题,哇我有一个想法,找到SRC并替换它:例如 并替换它 ...

7 PHP正则表达式用[IMG]替换html img标签

我有以下正则表达式用[IMG]替换html img标签; 在某种程度上,它可以按预期工作,但是我正在使用的某些img标签以'/&gt;'结尾,而另一些以'&gt;'结尾。 我无法将以上内容与后者配合使用。 示例1(有效): 示例2(无效) 感谢帮助。 ...

8 尝试匹配HTML的src部分 标签正则表达式

我已经从HTML文件中分离出了许多字符串,例如: 我正在尝试制作一个正则表达式,它将抓住img标签的src =“ URL ”部分,以便稍后可以根据其他一些条件替换它。 引号的许多实例给我带来了最大的问题,我对Regex还是比较陌生,所以很多技巧是我所不知道的, 提前致谢 ...

9 正则表达式从img标签中提取src属性

我正在尝试编写一个模式,用于提取HTML中img标记中找到的文件的路径。 我的模式: 问题是我的模式还将包含img标签的'border =“0”部分。 什么模式匹配此文件的URI路径而不包括'border =“0”? ...

2009-01-16 11:17:41 7 25780   regex
10 如何用正则表达式和jQuery替换src

我有以下输出。 有与center2.jpg等相同的输出。现在,我想在悬停时将center1.jpg替换为hover.jpg。 但是当我使用以下内容时,它变成了center1hover.jpg match(/[^.]+/)+“ hover.jpg part。出了点问题。我该怎 ...

2011-05-10 19:46:01 1 200   regex
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM