OriginalGriff
Где бы вы ни получили этот код, вы не думали, прежде чем изменить его.
1) он не пытается проверить содержимое файла: эта строка:
var file = filepath;
ничего не читает из файла.
Ты можешь попробовать:
var file = File.ReadAllText(filepath);
2) ваше регулярное выражение соответствует всему. '.' в регулярном выражении означает "любой символ вообще", поэтому наличие точки в вашем регулярном выражении означает, что она всегда будет соответствовать каждому символу:
[{(-_!@#$%^&*+<>,./\\?|':;~)}]
Функционально идентичен
[.]
Или даже
.
Этого нужно избежать с помощью"\".
3) даже если вы исправите это, регулярное выражение содержит "специальные символы", такие как '^' - "начало строки или строки" и '$' - "конец строки или строки". Специальные символы должны быть экранированы так же, как и".".
4) внутри вашей петли: как вы думаете, что это делает? ваше регулярное выражение соответствует отдельным символам, а затем вы предполагаете, что они автоматически являются допустимыми регулярными выражениями?
Это код, который генерирует сообщение об ошибке: как только ваше регулярное выражение совпадает с первым " \ " - что произойдет очень быстро, учитывая, что ваш существующий код анализирует путь к файлу, а не содержимое файла, - процессор регулярных выражений выходит из строя, потому что это escape-символ, и за ним должен следовать символ, который вы экранируете.
Даже если я поверю, что вы не тот человек, который уже дважды отправлял этот вопрос - что было бы очень странно.
ОГРОМНЫЙ прыжок веры - тогда вам нужно понять, что вы не можете просто вырезать кусочки кода, сложить их вместе и получить то, что вы хотите: вам нужно подумать о том, что делает данный вам код, и как это может стать основой для ваших требований. Вы почти никогда не найдете код, который можно просто скопировать, вставить и отправить в качестве домашнего задания и ожидать, что он будет работать как есть.