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

Место общения программистов C#
Ответить
Anonymous
 Как найти, какие символы в строке не соответствуют шаблону регулярного выражения?

Сообщение 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 ... egex-patte
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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