正则表达式匹配任何不包含点字符的字符串

时间:2013-01-08 05:38:11

标签: regex

例如匹配任何文件夹名称,但在扩展名之前具有点(。)的文件除外 我尝试[^\.].+[^\.].*无效工作

5 个答案:

答案 0 :(得分:21)

你需要锚定它:

^[^.]+$

这将匹配由除点之外的任何字符组成的字符串。这是你在“延期”之前的意思吗?如果你的意思是“在开头”,那么^[^.]就可以了。

但是,如果这不是,比如ack或者其他东西,并且你有一个实际的编程语言,那么这可能会更好。

答案 1 :(得分:3)

试试^[^.]+$。顺便说一句,你不需要在[]中删除点。

答案 2 :(得分:2)

这个怎么样:

^[^.]+$

Demo Regex

答案 3 :(得分:1)

你可以这样做:

^[^.]+$

^(?!.*\.).*$

答案 4 :(得分:0)

不要为正则表达式而烦恼,这是昂贵的。这是一个更快的例子(在php中)

foreach($files as $file)
{
    // ignore dot files
    if( 0 === strpos($file,'.') ) continue;
    ...
}