C# .NET RegEx - как найти, какие символы в строке не соответствуют шаблону регулярного выраженияC#

Место общения программистов C#
Anonymous
C# .NET RegEx - как найти, какие символы в строке не соответствуют шаблону регулярного выражения

Сообщение Anonymous »

Имея этот шаблон регулярного выражения (в С#):

Код: Выделить всё

^\d{2}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}$
эта строка будет соответствовать:

Код: Выделить всё

11/10/25 17:22:31
но этого не будет (у него просто добавлена ​​буква "X")

Код: Выделить всё

X11/10/25 17:22:31
этот тоже:

Код: Выделить всё

11/10/25 X17:22:31
Есть ли способ узнать, когда строка не соответствует шаблону, какие части строк делают ее несоответствующей? (т. е. найти символы, которые, если их удалить, будут соответствовать регулярному выражению)
Итак, как в этом случае найти «X»?
Почему я этого хочу:
Я читаю кучу текстовых файлов, где каждая строка должна соответствовать шаблону. Но я обнаружил, что во многих случаях файл кажется каким-то образом поврежденным, и где-то в некоторых строках случайно добавляется какой-то символ, что делает его не соответствующим регулярному выражению. На данный момент я просто игнорирую эти строки как недействительные, но пытаюсь выяснить, не соответствует ли строка только потому, что где-то есть один «незаконный» символ, так что просто удалив этот символ, регулярное выражение будет соответствовать шаблону, и тогда я смогу считать его действительным.
Надеюсь, это объяснение имеет смысл...

Подробнее здесь: https://stackoverflow.com/questions/797 ... to-not-mat

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