Regex Сопоставить строку с префиксом, затем без учета регистра, затем с постфиксом - PullRequest
0 голосов
/ 10 июля 2019

Поэтому мне нужно сопоставлять строку без учета регистра, которая имеет буквенный префикс и постфикс.

например Скажи, я ищу следующее

  • $ Закрыть (# $ 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;
}

Моя трубка - это часть имени экрана без учета регистра.

1 Ответ

1 голос
/ 10 июля 2019

Если вы хотите изменить «правила игры» в любом месте вашей строки, вы можете использовать встроенные опции (?imnsx-imnsx). - отключает опции.

Скажем, вам нужно сопоставить строку ABCabc. Тогда шаблон ABC(?i)ABC будет соответствовать этой строке. Другими словами, сначала он будет строго соответствовать ABC, но затем все перестановки случаев ABC: abc, aBc, aBC и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...