大家好,我需要一个正则表达式来替换de src =和/>中的所有内容。这一行标记
src="../../../../../mailPhotos/assasins1.jpeg" alt="" width="284" height="177" /></p>
我正在为正则表达式尝试的代码如下:
String regex="src=\"../../../../../ndeveloperDocuments/mailPhotos/assasins1.jpeg\" alt=\"\" width=\"284\" height=\"177\" /></p>";
regex=regex.replaceFirst("src./>", "src='cid:"+1001+"'");
但它并没有取代任何东西。我认为正则表达式会做“替换src和/&gt;之间的所有内容”,但我认为我错了,因为它不起作用。在这种情况下使用什么样的正则表达式?。非常感谢
答案 0 :(得分:2)
.
只匹配一个字符。要匹配零个或多个字符,请使用.*
并使用.+
匹配一个或多个字符。
所以,你的代码是:
String regex="src=\"../../../../../ndeveloperDocuments/mailPhotos/assasins1.jpeg\" alt=\"\" width=\"284\" height=\"177\" /></p>";
regex=regex.replaceFirst("src.*/>", "src='cid:"+1001+"'");
答案 1 :(得分:0)
.
仅匹配单个字符。要匹配任意数量的单个字符,请使用.*
(0或更多)或.+
(1个或更多)。
然而,这种匹配很容易出错。例如,如果您有一个类似src="foo" /> Some other content <br />
的字符串,那么您的正则表达式将一直匹配到最终/>
,并吞下其他内容。防止这种情况的常用方法是使用像src=[^>]+/>
这样的正则表达式。 [^>]
表示“除 >
之外的任何字符。