我尝试用regex测试输入,但它不起作用。
Makefile:
test:
if [[ "$(version)" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+)?$ ]]; then \
echo "yes"; \
else \
echo "no"; \
fi测试:
没问题的。
没问题的。
应该是不。
应该是不。
当我删除“?”时:
^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+)$它适用于第二、第三和第四种情况,但显然不适用于第一种情况。
$ make -版本 3.81 … 这个程序是为i 386-apple-darwin11.3.0开发的。
我的错误在哪里?
发布于 2016-04-02 07:21:47
用$$替换$
^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+)?$$$ in makefile是特殊的,所以您需要转义$,而不需要转义,真正的regex就会变成
^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+)?https://stackoverflow.com/questions/36370260
复制相似问题