这是我的正则代码
(?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; 我想省略../
答案 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='...'
['"]
$1
和$2
来引用它们。String.replaceAll
。它与通常的replace
类似,不同之处在于它将字符串计算为正则表达式。.png
或.jpg
。也有一些技巧可以做到。