using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?<=\w)(?<!\w-\w)(?: ?-+ ?)+(?=\w)(?!\w-\w)";
string substitution = @"—";
string input = @"<!-- The following should match. Not the dashes in the comment tag, obviously ;P -->
<h2 class=""chapter_title"">Chapter 01 -- The Beginning</h2>
<h2 class=""chapter_title"">Chapter 02 - The Reckoning</h2>
<h2 class=""chapter_title"">Chapter 03 - - The Aftermath</h2>
<h2 class=""chapter_title"">Chapter 04--The Conclusion</h2>
<p>I was having the usual - cheeseburger and a cold beer.</p>
<!-- The following should not match -->
<p>I was wearing a t-shirt.</p>
<p>It was a drunken mix-up</p>
<p>---</p>
<p>-----</p>
<p>- - -</p>
<p> - - </p>
<p> - - - </p>
";
RegexOptions options = RegexOptions.Multiline;
Regex regex = new Regex(pattern, options);
string result = regex.Replace(input, substitution);
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx