我有什么应该是一个真正简单的正则表达式问题。我正在make makefile,需要一个目标来编译我的目录中的所有源,除了一个或两个具有ttem_endian_port的命名前缀的文件。我可以用什么正则表达式来尽可能简化?正则表达式来选择除具有某个前缀的文件之外的所有.c文件
我正在考虑类似[^ ttem_endian_port *] *。c但这似乎并不奏效。
我有什么应该是一个真正简单的正则表达式问题。我正在make makefile,需要一个目标来编译我的目录中的所有源,除了一个或两个具有ttem_endian_port的命名前缀的文件。我可以用什么正则表达式来尽可能简化?正则表达式来选择除具有某个前缀的文件之外的所有.c文件
我正在考虑类似[^ ttem_endian_port *] *。c但这似乎并不奏效。
你真的需要一个正则表达式? make
的内置函数也可以做到这一点。
ALL_SRCS := $(wildcard *.c) SRCS := $(filter-out ttem_endian_port%.c, $(ALL_SRCS))
^[^(ttem_endian_port)]*.c
正则表达式并没有做出做负搜索。如果你真的想使用正则表达式,你可以做一个先行(不是所有的引擎都支持它):
^(?!ttem_endian_port).*\.c$
另外,不要忘了逃生点。 查看this question了解更多信息。