In the example below, we want to replace all HTML span elements, with their inner content.
We create a C# regular expression to match the span element, and put parens around the part of the expression that matches the inner content. The parens create a matched group that we can reference in our replace-with string.
The $ syntax is used to refer to a matched group by number. In this case, we have only one group, so our replace-with string is $1.
Note that the regular expression will match two times, once for each span.
using System;
using System.Text.RegularExpressions;
namespace Zuga.net
{
class Program
{
static void Main(string[] args)
{
var input = "one <span>two</span> three <span>four</span> five";
var pattern = "<span>(.*?)</span>";
var replacement = "$1";
var output = Regex.Replace(input, pattern, replacement);
Console.WriteLine("Input: {0}", input);
Console.WriteLine("Output: {0}", output);
}
}
}
The question mark makes the inner subexpression non-greedy.
Program output:
Input: one <span>two</span> three <span>four</span> five Output: one two three four five