2016-08-22 8 views
0

zum Beispiel ersetzen:Wie ein Teil des Textes mit regex C#

string str = [email protected]"<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 = [email protected]"<html> <head> </ head > <body> <start> <h1> Header 1 </ h1 > <p> hello world</ p > <end> <p></ p > </ body > </ html > " 

So habe ich ein <start> und <end> Zeichen zu wissen, welcher Teil des Textes ersetzt werden soll. Wie kann ich die newString von Regex bekommen.

Antwort

1

Mit Regex.Replace legen Sie das Muster von der ersten <r> auf die zweite, einschließlich alles, was dazwischen ist. Dann geben Sie an, was Sie ersetzen möchten.

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

Wenn vor C# 6.0 String-Interpolation dann:

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

Mit neuester Saite von Kommentaren:

string str = [email protected]"<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>"); 
+0

Das ist zu einfach für regex. Verwenden Sie die String.Replace() -Methode, die effizienter ist. – jdweng

+0

danke für die Antwort, aber es hat nicht geholfen. –

+0

@DoniyorNiyozov - Was bedeutet es "hat nicht geholfen"? Es funktioniert für mich..Welche C# benutzen Sie? wenn unter C# 6.0, siehe update –

Verwandte Themen