例如,输入路径为   D:\\\123\\\456 (正确的应该是:D:\123\456)怎样判断出不合法?

解决方案 »

  1.   

    “D:\”,“D:\abc\”这样的是否合法
    如果合法,用下面的
    ^[a-zA-Z]:(\\[0-9a-zA-Z]+)*\\?$
    如果不合法,用下面的
    ^(?![a-zA-Z]:$)[a-zA-Z]:(\\[0-9a-zA-Z]+)*$
      

  2.   

    to lxcnn
    我刚学c#正则表达式,很多地方还不懂,对^(?![a-zA-Z]:$)[a-zA-Z]:(\\[0-9a-zA-Z]+)*$这个正则表达式不理解,为什么不能直接就写成^[a-zA-Z]:(\\[0-9a-zA-Z]+)*$,是否可以解释一二
      

  3.   

    是这样的,如果“D:\”,“D:\abc\”这样的不合法
    那么合法的为“D:\123\456”,加上(?![a-zA-Z]:$)是为了排除例如"C:"、“D:”这样的不合法路径
    (?!***)为正向预搜索,它本身并不匹配任何内容,只是对所在位置附加一个限定条件,在它的右侧,字符串必须不能匹配“***”表达式的内容。
      

  4.   

    建议检测路径就不要用正则了,用System.IO.Path