2

我正在寻找一个正则表达式来匹配以“。”开头的每个文件。在一个目录中。

我正在使用 CMake(来自 CMake doc:“CMake 需要正则表达式,而不是 glob”)并且想要忽略每个以点开头的文件(隐藏文件)但是"\..*"或者"^\..*"不起作用:(

奇怪的是:这有效(感谢rq的回答)并删除所有隐藏文件和临时文件(“〜”终止文件)

file(GLOB DOT ".*")
file(GLOB TILD "*~")

set (CPACK_SOURCE_IGNORE_FILES "${DOT};${TILD}")

但是我找不到正确的东西直接写入CPACK_SOURCE_IGNORE_FILES以获得相同的结果!

这是这个变量的“ doc ”。

4

5 回答 5

3

听起来 GLOB 可能是你想要的。

试试这个。打开文件“test.cmake”并添加以下内容:

file(GLOB ALL "*")
file(GLOB DOT ".*")
file(GLOB NOTDOT "[^.]*")

message("All Files ${ALL}")
message("Dot files ${DOT}")
message("Not dot files ${NOTDOT}")

然后创建几个测试文件:

touch .dotfile
touch notdot

然后运行“cmake -P test.cmake”。输出是:

All Files /tmp/cmake_test/.dotfile;/tmp/cmake_test/notdot;/tmp/cmake_test/test.cmake
Dot files /tmp/cmake_test/.dotfile
Not dot files /tmp/cmake_test/notdot;/tmp/cmake_test/test.cmake

这是用 cmake 2.6.0 测试的。

于 2009-04-08T08:43:36.953 回答
1

使用标准正则表达式语法:

^\..*

由于 CMake 显然不喜欢这样,它可能会使用类似的东西:

^\\..*

不过,这只是一个猜测,因为我没有/使用 CMake。

于 2009-04-07T18:42:44.510 回答
1

以下单行将完成工作(隐藏隐藏和波浪号(“~”)终止的文件):

set(CPACK_SOURCE_IGNORE_FILES "/\\\\..*$;~$;${CPACK_SOURCE_IGNORE_FILES}")
于 2011-01-05T23:39:13.747 回答
0

你需要逃避它。

^\..*
于 2009-04-07T18:42:44.680 回答
0

试试这个:

^[.].*
于 2009-04-07T20:14:07.283 回答