如何使用正则表达式替换文本的某些部分c#

时间:2016-08-22 10:18:31

标签: c# regex string

例如:

string str = $@"<html> < head > </ head > < body > <start> < h1 > Header 1 </ h1 > < p > A worker can be of 3 different types.</ p > <end> < p ></ p > </ body > </ html > "
string replacement = "hello world";
string newString = $@"<html> < head > </ head > < body > <start> < h1 > Header 1 </ h1 > < p > hello world</ p > <end> < p ></ p > </ body > </ html > "

所以我有一个<start><end>标志,知道应该替换文本的哪一部分。如何通过正则表达式获取newString

1 个答案:

答案 0 :(得分:1)

使用Regex.Replace您可以将模式从第一个<r>设置为第二个,包括介于两者之间的所有模式。然后指定要替换的内容。

var result = Regex.Replace(str, "<start>.*?<end>", $"<start> {replacement} <end>");

如果在C#6.0字符串插值之前,那么:

var result = Regex.Replace(str, "<start>.*?<end>", string.Format("<start> {0} <end>",replacement));

使用评论中的最新字符串:

string str = $@"<html> < head > </ head > < body > <start> < h1 > Header 1 </ h1 > < p > A worker can be of 3 different types.</ p > <end> < p ></ p > </ body > </ html > ";
string replacement = "hello world";

var result = Regex.Replace(str, "<start>.*?<end>", $"<start> {replacement} <end>");