REGEX:获得src =&#34的价值;"特殊字符

时间:2016-06-03 10:21:55

标签: java regex

这是我的正则代码

(?i)\\s*src\\s*=\\s*(?:\"[^\"]*(?<!\\.css|\\.ico)\"|'[^']*(?<!\\.css|\\.ico)'|[^'\">\\s]+(?<!\\.css|\\.ico))

我希望得到src =&#34;&#34;中的所有价值。然后把它变成什么样的业务......这样的事情......

Pattern src = Pattern.compile(HTML_IMG_SRC);
        Matcher srcM = src.matcher(getNewLine());
        setNewLine(srcM.replaceAll(" src=\"images"));

src里面的值是...... src =&#34; ../ images&#34; 我想省略../

2 个答案:

答案 0 :(得分:0)

所以如果你的getNewLine()返回例如'blah src =“../ images”blah'你想得到'blah src ='图像“blah',对吗?

答案 1 :(得分:0)

因此,您要将src="../images...替换为src="images...。这就是你如何做到的:

    String str = "asdf='jkl' src=\"../images/example.jpg\" asrc='../images/as' src='../images/example.png'";
    System.out.println(str.replaceAll("(\\ssrc=['\"])../(images)", "$1$2"));

说明:

  • \\ssrc将确保您确实检查src属性,因为它以空格开头。即asrc属性将被省略。
    • 你需要两个反斜杠,所以一个反转另一个,所以得到的正则表达式将是\ssrc
  • 字符类['\"]确保您可以匹配src="..."src='...'
    • 您需要转义双引号以使java字符串有效。你的正则表达式将是['"]
  • 您需要括号来捕获您在字符串中找到的确切引用。然后我们使用反向引用$1$2来引用它们。
  • 运行此正则表达式的最简单的java代码是String.replaceAll。它与通常的replace类似,不同之处在于它将字符串计算为正则表达式。
  • 此代码不会检查src是否为实际图片,例如.png.jpg。也有一些技巧可以做到。