Поэтому мне нужно сопоставлять строку без учета регистра, которая имеет буквенный префикс и постфикс.
например Скажи, я ищу следующее
- $ Закрыть (# $ ScreenName: «Всплывающее окно подтверждения системы A»)
- $ Закрыть (# $ ScreenName: «System A Alarm Popup»)
- $ Закрыть (# $ ScreenName: "Меню системы A")
префикс $Close(#$ScreenName: "
всегда будет одинаковым, а постфикс ")
всегда будет одинаковым. Однако того, что находится внутри кавычек, не будет, и я хочу сопоставить его без учета регистра.
Так что, если я скажу ему искать «Всплывающее окно подтверждения системы A», оно будет соответствовать
$Close(#$ScreenName: "System A Acknowledgement Popup")
или
$Close(#$ScreenName: "system a acknowledgement popup")
Вот мой код. Я пытаюсь получить счетчик совпадений, а затем заменить его.
static string FixScreenCallsInFile(string FileContents, List<string> screenNamesToFindAndFix)
{
foreach (var screenName in screenNamesToFindAndFix)
{
var ScreenNameHelper = (Old: $"$Close(#$ScreenName: \"{screenName}\")", New: $"$Close(\"{screenName}\")", OldSearchPattern: Regex.Escape($"$Close(#$ScreenName: \"{screenName}\")"));
var CountMatch = Regex.Matches(FileContents, ScreenNameHelper.OldSearchPattern).Count;
if (CountMatch > 0)
{
Console.WriteLine($"\t\t{ScreenNameHelper.Old} count is {CountMatch} -> {ScreenNameHelper.New}");
FileContents = Regex.Replace(FileContents, ScreenNameHelper.OldSearchPattern, ScreenNameHelper.New);
}
}
return FileContents;
}
Моя трубка - это часть имени экрана без учета регистра.