首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >makefile中的可选regex组

makefile中的可选regex组
EN

Stack Overflow用户
提问于 2016-04-02 07:02:25
回答 1查看 206关注 0票数 0

我尝试用regex测试输入,但它不起作用。

Makefile:

代码语言:javascript
复制
test:
    if [[ "$(version)" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+)?$  ]]; then \
        echo "yes"; \
    else \
        echo "no"; \
    fi

测试:

  1. 使测试version="0.1.1“ 是

没问题的。

  1. 测试version="0.1.1-S“ 是

没问题的。

  1. 使测试version="0.1.1-“ 是

应该是不。

  1. 使测试version=“0.1.1-*” 是

应该是不。

当我删除“?”时:

代码语言:javascript
复制
^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+)$

它适用于第二、第三和第四种情况,但显然不适用于第一种情况。

$ make -版本 3.81 … 这个程序是为i 386-apple-darwin11.3.0开发的。

我的错误在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-02 07:21:47

用$$替换$

代码语言:javascript
复制
 ^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+)?$$

$ in makefile是特殊的,所以您需要转义$,而不需要转义,真正的regex就会变成

代码语言:javascript
复制
^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+)?
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36370260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档