Я пытаюсь соответствовать ниже:
String RTFContent1 = @"\\htmlrtf {{\\*\\bkmkstart MyLink}\\htmlrtf0 \\htmlrtf {\\*\\bkmkend MyLink}}\\htmlrtf0 \r\n{\\*\\htmltag92 </a>}\r\n{\\*\\htmltag84 <a href=\sip: 3333@mySIPDomain.com\>}\\htmlrtf {\\field{\\*\\fldinst{HYPERLINK \sip:3333@mySIPDomain.com\}}";
String RTFContent2 = @"\\htmlrtf {{\\*\\bkmkstart MyLink}\\htmlrtf0 \\htmlrtf {\\*\\bkmkend MyLink}}\\htmlrtf0 \r\n{\\*\\htmltag92 </a>}\r\n{\\*\\htmltag84 <a href=\http://www.google.com\>}\\htmlrtf {\\field{\\*\\fldinst{HYPERLINK \http://www.google.com\}}";
String MyLink = "MyLink";
Regex regex = new Regex("bkmkstart.*" + MyLink + @".*?HYPERLINK.*?(\w+:[^\s\\]+)");
MatchCollection matches = regex.Matches(RTFContent1);
if (matches.Count == 0) -> Always true!!!
Когда я использую https://regex101.com/ для проверки регулярного выражения, все работает отлично, за исключением того факта, что регулярное выражение C # удвоило обратную косую черту:
// Working Regex
bkmkstart.*MyLink.*?HYPERLINK.*?(\w+:[^\s\\]+)
// C# Regex with no match
bkmkstart.*MyLink.*?HYPERLINK.*?(\\w+:[^\\s\\\\]+)
Тест здесь: https://regex101.com/r/tZJGLE/2
Любая вторая пара глаз, смотрящая на это, будет оценена.