Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 试图限制后续出现的相同字符_C#_Regex - Fatal编程技术网

C# 试图限制后续出现的相同字符

C# 试图限制后续出现的相同字符,c#,regex,C#,Regex,我试图在命令提示符中实现类似的更改目录(cd)功能 The restriction is that, 1 . directory names must only contain alphabets. 2 . root directory is "/" 3 . parent directory is ".." 4 . path separator is "/" 输入将是新的路径名 Input might be like . 1. directory name alone. - valid 2

我试图在命令提示符中实现类似的更改目录(cd)功能

The restriction is that, 
1 . directory names must only contain alphabets.
2 . root directory is "/"
3 . parent directory is ".."
4 . path separator is "/"
输入将是新的路径名

Input might be like . 
1. directory name alone. - valid
2. directory/directory/directory - valid
3. directory//directory - invalid
4. .. - valid
5. directory/.. - valid
6. directory/... - invalid
还有其他类似的组合

为了避免复杂性,我尝试拆分支票

  • 为了检查输入必须只包含字母,我使用了^[A-Za-z]+$this
  • 但不知道如何将后续出现的/和点(.)字符分别限制为1和2

  • 谢谢

    您可以简单地使用
    String.IndexOf
    并检查它的返回值

    var is_only_one_slash = input.IndexOf("\\\\") == -1;
    var is_only_two_dots = input.IndexOf("..") > -1;
    if(is_only_one_slash && is_only_two_dots) {
      // valid
    } 
    

    请根据你的具体问题写一个更好的标题。我不会走regex路线,你会气疯的。也许看看这是否对你有帮助@Erti ChrisEelmaa:1。在我的场景中,输入(控制器/文件夹名称)必须不仅包含字母,而且windows允许数字和某些特殊字符。2.没有regex,如果输入很简单,就像一次只有一个目录名一样(例如:cd folder),那么就很简单了。但是命令是什么样的(cd../folder/../../../../../../../../../../../../../../../../../../../../../../../../../123),类似的,为了得到错误(不允许使用数字),我可能需要迭代近10次,这在最后是浪费时间的,然后通过FileInfo类运行它,就像我给出的链接一样,检查它是否有效?谢谢Amit,实际上我只需要2个点字符(..)和1个/字符。另外,我在正则表达式中找不到测试方法(我使用的是System.Text.RegularExpressions)@JonathonGohan检查我的编辑。它现在应该可以在没有任何正则表达式的情况下工作了。阿米特,我已经编辑了这个问题。请查收。是的,我想我可能会用那个indexOf来表示斜杠。但它可能会忽略超过2个点的场景,rite。1. ... - 它将被视为有效