2015-08-28 5 views
2

Следующее регулярное выражение используется для проверки пути локального диска.Проверка правильности регулярного выражения локального пути

(^(?:[a-zA-Z]:|(\\\\|\/\/)[\w\.]+(\\|\/)[\w.$]+)((\\|\/)|(\\\\|\/\/))(?:[\w ]+(\\|\/))*\w([\w. ])+$) 

http://regexr.com/3bm2i

Проблема заключается в том, что она позволяет:

Z:\daily\Test 
Z:\daily\Test.d ocx 

Регулярное выражение должно требовать точку после последнего слеша, а также не позволяет пространство в расширении файла (т.е.) после последней точки.

Любая помощь будет оценена по достоинству.

спасибо.

ответ

0

Это регулярное выражение делает трюки:

(^(?:[a-zA-Z]:|(\\\\|\/\/)[\w\.]+(\\|\/)[\w.$]+)((\\|\/)|(\\\\|\/\/))(?:[\w ]+(\\|\/))*\w([\w. ])+[\.][a-zA-Z]+$) 
+0

Это работает, как ожидалось. Спасибо. – Rumeth

0

Попробуйте это:

(^(?:[a-zA-Z]:|(\\\\|\/\/)[\w\.]+(\\|\/)[\w.$]+)((\\|\/)|(\\\\|\/\/))(?:[\w ]+(\\|\/))*\w([\w.])+\.\w+$) 
1

Я не рекомендую использовать регулярное выражение для этого, как путь зависит от файловой системы, на которой он будет использоваться.

Вы должны сделать только некоторые базовые проверки и обрабатывать исключения, если таковые имеются.

Регулярное выражение столь же просто, как показано ниже будет достаточно:

[.][^\ .]+$ //would check if the path has extention 
Смежные вопросы