我应该是一个真正简单的正则表达式问题。我正在创建一个makefile,需要一个目标来编译我的目录中的所有源,除了一个或两个名为ttem_endian_port前缀的文件。我可以用什么正则表达式来尽可能简单?
我在考虑像[^ ttem_endian_port *] * .c这样的东西,但这似乎不起作用。
答案 0 :(得分:16)
你真的需要正则表达式吗? make
的内置函数也可以这样做。
ALL_SRCS := $(wildcard *.c) SRCS := $(filter-out ttem_endian_port%.c, $(ALL_SRCS))
答案 1 :(得分:2)
^[^(ttem_endian_port)]*.c
答案 2 :(得分:2)
Regexp没有进行否定搜索。如果您真的想使用正则表达式,可以使前瞻(并非所有引擎都支持它):
^(?!ttem_endian_port).*\.c$
另外,不要忘记逃避点。 请查看this question以获取更多信息。