Найти подстроку, игнорирующую указанные символыC#

Место общения программистов C#
Anonymous
Найти подстроку, игнорирующую указанные символы

Сообщение Anonymous »

Кто-нибудь из вас знает простой/чистый способ найти подстроку внутри строки, игнорируя при этом некоторые указанные символы. Я думаю, что лучше это объяснит пример:
  • строка: «Здравствуйте, -это- строка»
  • Подстрока для поиска: «Привет!»
  • символы, которые следует игнорировать: «,» и «- "
  • найдена подстрока, результат: "Привет, -это"
Для меня использование Regex не является обязательным, но я добавил тег, потому что он кажется связанным.
Обновление:
Чтобы прояснить требование: мне нужна результирующая подстрока с игнорируемыми символами, а не просто указание на существование данной подстроки.
Обновление 2:
Некоторые из вас слишком много читают об этом примере, извините, я приведу другой сценарий, который должен сработать:
  • < strong>строка: "?A&3/3/C)412&"
  • подстрока для поиска: "A41"
  • символы, которые следует игнорировать: "&", "/", "3", "C", ")"
  • найден подстрока, результат: "A&3/3/C)41"
И в качестве бонуса (сам по себе не обязательно) будет отлично, если также небезопасно предполагать, что подстрока, которую нужно найти, не будет содержать игнорируемых символов, например: учитывая последний пример, мы должны быть в состоянии сделать:
  • подстрока для поиска: "A3C412&"
  • символы, которые следует игнорировать: "&", "/", "3", "C", ")"
  • найдена подстрока, результат: "A&3/3/C)412&"
Извините, если я не ясно выразился раньше, или все еще не совсем ясно :).
Обновить 3:
Спасибо всем, кто помог! Вот реализация, над которой я сейчас работаю: Вот несколько тестов: Я использую некоторые собственные методы расширения, а не включая, но я считаю, что они должны быть понятны (я добавлю их, если хотите)
Я взял много ваших идей для реализации и тестов, но я даю ответ @PierrOz, потому что он был одним из первых и указал мне правильное направление.
Не стесняйтесь продолжать предлагать альтернативные решения или комментировать текущее состояние реализации. если хочешь.

Подробнее здесь: https://stackoverflow.com/questions/259 ... characters

Вернуться в «C#»