Regex 共享/网络文件夹的严格正则表达式

Regex 共享/网络文件夹的严格正则表达式,regex,path,shared-directory,Regex,Path,Shared Directory,我试图将用户的输入限制为有效的共享文件夹路径,如 \\\computer name\drive\optional\u folder1\optional\u folder2\ 以2个斜杠开始,后跟计算机名、单斜杠和驱动器号。(我记下了这个部分) 以0或1斜杠结束 可以有零个或多个单斜杠,后跟文件夹名称(\folder) 除第一个斜杠外,没有多个斜杠 我试着环顾四周,制作自己的正则表达式,但我找不到完美的答案。这是我当前的正则表达式: ^(\{2})([A-Za-z-.\}+)(\{1})([A-Z

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

\\\computer name\drive\optional\u folder1\optional\u folder2\

  • 以2个斜杠开始,后跟计算机名、单斜杠和驱动器号。(我记下了这个部分)
  • 以0或1斜杠结束
  • 可以有零个或多个单斜杠,后跟文件夹名称(\folder)
  • 除第一个斜杠外,没有多个斜杠
  • 我试着环顾四周,制作自己的正则表达式,但我找不到完美的答案。这是我当前的正则表达式:

    ^(\{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)
    

    演示:

    我简化了一点:

    ^(\\)(\\[\w\.-_]+){2,}(\\?)$
    
    所以基本上你想要

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

    演示:

    这是一个完美的解决方案,也是一个更好的方法。非常感谢。你教会了我如何简化标准。谢谢)希望它能起作用,如果出现问题,请告诉我,因为与你的模式相比,你无法逃脱斜线和圆点。因此,您的正则表达式引擎可能会出现问题。此正则表达式失败,
    String path=“String path=“\\\\\WIN-OTPNOBLC0AQ.myhacks.test.com\\sysvol”
    。知道为什么会这样吗?可能您忘记了转义点(
    )通过
    \.
    ?@streetturtle而不是转义点,我是否可以使用表示“任意字符”的正则表达式?我想首先验证输入是否由以下内容组成:2个斜杠+1个字(可以是FQDN/NetBIOSname/IPaddress)+斜杠+共享名称这是一个完美的解决方案,也是一个更好的方式。谢谢。您教会了我如何简化标准。谢谢)希望它能起作用,如果出现问题,请告诉我,因为与您的模式相比,您无法逃脱斜杠和圆点。因此,您的正则表达式引擎可能会出现问题。此正则表达式失败,
    字符串路径=“String path=“\\\\WIN-OTPNOBLC0AQ.myhacks.test.com\\sysvol”
    。你知道为什么会这样吗?也许你忘了用
    \.
    转义点(
    )。?@streetturtle不是专门转义点,我能用一个表示“任何字符”的正则表达式吗?我想首先验证输入是否由以下内容组成:2个斜杠+1个字(可以是FQDN/NetBIOSname/IPaddress)+斜杠+共享名