У меня есть веб-приложение, которое принимает данные от пользователя, обычно в форме пути к файлу, гиперссылки или общего доступа к файлам, но не всегда. Пользователь может ввести «\ my.fileshare.com», «http://www.msdn.com",» или «В моем файле cabent». Эти входные данные экспортируются в файл Excel. Однако, если входные данные имеют вид «\ look» на моем столе "или" http://here это "(обратите внимание на пробелы), после экспорта и открытия файла Excel выдает очень описательное сообщение об ошибке, и я цитирую" Ошибка ".
Я добавляю к существующему коду валидатор регулярных выражений в текстовое поле, в которое пользователь вводит и редактирует эти местоположения. Поскольку существует большое количество существующих записей, валидатор должен быть как можно более конкретным, и только выбрасывать входы, которые приводят к сбою экспорта в Excel. Например, «\ Работать» будет работать, как и «Работать», и «\ Это \ также будет работать». Мне нужно регулярное выражение, что если строка начинается с \, http://, https://, ftp: //, ftps: //, в имени сервера или файлообменника не будет пробела, и если оно не начинается с \, http://, https://, ftp: //, ftps: //, все нормально.
Мне удалось написать первую часть
^ (\\) [^ \] + (\. ) $ | ^ (((ht | f) tp (s)?): //) [^ /]+(/.) $
но я не могу понять, как сказать игнорировать все, если оно не начинается с \, http://, https://, ftp: //, ftps: //.