例如匹配任何文件夹名称,除了扩展名之前有点(。)的文件
我尝试[^\.]
但.+[^\.].*
没有任何工作
问问题
35080 次
5 回答
34
你需要锚定它:
^[^.]+$
这将匹配由除点以外的任何字符组成的字符串。这就是你所说的“扩展前”吗?如果您的意思是“一开始”,那么^[^.]
就可以了。
但是,如果这不是 grep 之类的东西,并且您拥有一门实际的编程语言,那么在那儿可能会更好地完成。(例如,即使使用 grep 也最好只写grep -v '^\.'
。)
于 2013-01-08T05:40:20.360 回答
7
试试^[^.]+$
。顺便说一句,您不需要在 [] 内转义点。
于 2013-01-08T05:41:19.313 回答
3
于 2013-01-08T05:41:06.880 回答
2
你可以做:
^[^.]+$
或者
^(?!.*\.).*$
于 2013-01-08T05:41:34.280 回答
0
不要为此烦恼正则表达式,这很昂贵。这是一个更快的示例(在 php 中)
foreach($files as $file)
{
// ignore dot files
if( 0 === strpos($file,'.') ) continue;
...
}
于 2017-07-27T06:15:06.827 回答