我有什麼應該是一個真正簡單的正則表達式問題。我正在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瞭解更多信息。