我需要将一系列正则表达式应用于输入流。
我写了一个使用@(foreach ...)
的Makefile
在字符串中创建sed
命令序列,
然后成为食谱的一部分,即:
output: $(files)
command | $(dynamicSed) > $@
例如:要使几个编译器中的每一个的选项看起来像另一个编译器的选项,我可能有一个Makefile变量,如:
define compilerConfig
cca|ccb:-d@-D|-H@-I
ccc:-d@-D
endef
在Makefile中,我根据选择的编译器生成$(dynamicSed)
。
我选择了@
作为sed
分隔符
因为在实际应用程序中有许多涉及/
的正则表达式。
我选择|
来分隔正则表达式
因为我目前没有任何涉及替代品的正则表达式,
如果我这样做,他们总是可以写成两个正则表达式。
有更好的选择吗?
即,是否有一个字符更少出现并且不被扩展的POSIX正则表达式使用?
不幸的是,我不能依赖utf8这个特定的应用程序。 但是,如果可以的话,utf8是否具有明显的特征 被定义为专门用作分隔符?
答案 0 :(得分:1)
您可以更改$(dynamic_sed)
的搜索/替换组件,以在任何冲突的分隔符字符前面添加\
。然后你可以使用任何分隔符,这没关系。注意:这将在生成$(dynamic_sed)