Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
Regex捕获除以“quot;开头的文件外的所有文件&引用;_Regex_Dotfiles - Fatal编程技术网

Regex捕获除以“quot;开头的文件外的所有文件&引用;

Regex捕获除以“quot;开头的文件外的所有文件&引用;,regex,dotfiles,Regex,Dotfiles,在包含混合内容的目录中,例如: .afile .anotherfile bfile.file bnotherfile.file .afolder/ .anotherfolder/ bfolder/ bnotherfolder/ 除了以开头的文件(不是dir),您如何捕获所有内容? 我尝试了一个消极的前瞻^(?!\)。+?,但它似乎不起作用。 请注意,我希望通过使用[a-zA-Z]排除来避免这样做 有什么建议吗?这应该可以做到: ^[^.].*$ [^abc]将匹配任何非a、b或c的内容。。。

在包含混合内容的目录中,例如:

.afile
.anotherfile
bfile.file
bnotherfile.file
.afolder/
.anotherfolder/
bfolder/
bnotherfolder/
除了以
开头的文件(不是dir),您如何捕获所有内容?
我尝试了一个消极的前瞻
^(?!\)。+?
,但它似乎不起作用。
请注意,我希望通过使用
[a-zA-Z<加上所有其他可能的字符减去点>]
排除
来避免这样做

有什么建议吗?

这应该可以做到:

^[^.].*$

[^abc]
将匹配任何非a、b或c的内容。。。来个负面人物课怎么样

[^.]

要排除点?

转义
并对可以开始名称的字符求反,请执行以下操作:

^[^\.].*$

使用您的测试用例成功地进行了测试。

反向前瞻
^(?!\)。+$
确实有效。这里是Java:

    String[] files = {
        ".afile",
        ".anotherfile",
        "bfile.file",
        "bnotherfile.file",
        ".afolder/",
        ".anotherfolder/",
        "bfolder/",
        "bnotherfolder/",
        "", 
    };
    for (String file : files) {
        System.out.printf("%-18s %6b%6b%n", file,
            file.matches("^(?!\\.).+$"),
            !file.startsWith(".")
        );
    }
输出为():

还要注意非正则表达式的使用。可以说,这是最好的、可读性最好的解决方案,因为无论如何都不需要正则表达式,
startsWith
O(1)
,其中正则表达式(至少在Java中)是
O(N)

注意空白字符串上的不一致。如果这是一个可能的输入,并且您希望它返回
false
,您可以这样编写:

!file.isEmpty() && !file.startsWith(".")
另见
    • 在Java中,
      *
      甚至在
      模式中。DOTALL
      模式需要
      O(N)
      来匹配

此答案不正确,因为
必须作为
\.
转义。请看下面我的答案。我不认为点有括号表达式的特殊意义。以上这些对我来说很有用。看起来确实如此。很奇怪,但还行。不需要在角色类中转义。谢谢你提醒我负面类!不用花时间就可以对正则表达式生疏;)我正在看神秘的onigoruma医生,但完全错过了()。知道课堂上不需要逃跑也很好。
!file.isEmpty() && !file.startsWith(".")