例如匹配除了文件扩展名前有点(.)的文件夹名称
我尝试使用
我尝试使用
[^\.]
和.+[^\.].*
两种方式,但都没有起作用。[^\.]
和.+[^\.].*
两种方式,但都没有起作用。你需要锚定它:
^[^.]+$
那将匹配除点以外的任何字符组成的字符串。 这就是您所说的“在扩展名之前”吗? 如果您的意思是“在开头”,那么 ^ [^.]
就能做到。
但是,如果这不是像grep或其他工具的话,而是一个实际的编程语言,最好在那里完成此操作。 (即使使用grep也最好只写 grep -v '^\.'
,例如。)
可以尝试使用^[^.]+$
。顺便说一句,在[]内部不需要转义点号。
^[^.]+$
或者
^(?!.*\.).*$
不要费力去用正则表达式,那样很耗费资源。这里有一个更快的例子(php语言)
foreach($files as $file)
{
// ignore dot files
if( 0 === strpos($file,'.') ) continue;
...
}