使用C#,如何仅替换某些内容的第一个匹配?
示例输入:<img src="1.jpg" />some other text<img src="2.jpg" />
正在使用的正则表达式,有效:
<img.*?>
以下内容取代了所有匹配项,但是,我只想替换第一个匹配项,并将第二个项(以及所有其他项)单独保留。
string val = Regex.Replace(input, "<img.*?>", string.Empty);
return val;
谢谢!
答案 0 :(得分:3)
将1
作为第三个参数传递。
Regex.Replace
有an overload that takes a maximum number of replacements to make。
请注意,通过将Regex
实例放在静态只读字段中,可以获得更好的性能。这样,每次调用Replace
时,运行时都不需要重新解析正则表达式。
答案 1 :(得分:2)
使用重载的Regex.Replace Method (String, MatchEvaluator, Int32)
将Int32的值设置为1。