shared/network 文件夹的严格正则表达式

Strict regular expression for shared/network folder

我正在尝试将用户的输入限制为有效的共享文件夹路径,例如

\\computer-name\drive\optional_folder1\optional_folder2\

  1. 以 2 个斜杠开头,后跟计算机名称、单斜杠和驱动器号。 (我把这部分记下来了)
  2. 以 0 或 1 个斜杠结尾。
  3. 可以有零个或多个单斜杠后跟文件夹名称 (\folder)。
  4. 除第一个斜杠外没有多个斜杠。

我试着环顾四周并制作自己的正则表达式,但找不到完美的答案。这是我当前的正则表达式:

^((\{2})([A-Za-z -._]+)(\{1})([A-Za-z -._]+))(\{1}([A-Za-z .-_])+)*(\?)$

如有任何提示,我们将不胜感激。

谢谢大家。

我简化了一点:

^(\)(\[\w\.-_]+){2,}(\?)$

所以基本上你想要

^(\)              # start with slash
(\[\w\.-_]+)      # followed by group of slash and name
{2,}               # which should be two or more times
(\?)$             # last slash(es)

演示:https://regex101.com/r/mD2yL7/110