我想验证用户指定的版本字符串,以确保它由三个周期分隔的数字(e.g. 1.20.300
)组成。
但我不知道如何编写这样的regex,下面的代码只是一次尝试:
if( PROJECT_VERSION MATCHES "([0-9]+).([0-9]+).([0-9+])" )
message( "NOTE: Valid version string" )
else()
message( FATAL_ERROR "Invalid version string" )
endif()
那么,如何正确地编写所需的正则表达式呢?
谢谢。
UPD
我的正则表达式也与1.2.3.4
匹配,但是不应该的!
只有三个周期分隔的数字是可能的。
发布于 2015-11-02 04:07:58
圆点在正则表达式中很特殊,所以你应该避开它们:
"^([0-9]+)\\.([0-9]+)\\.([0-9]+)$"
为什么是双反斜杠?见此处:https://stackoverflow.com/a/4490920/4323
https://stackoverflow.com/questions/33477207
复制相似问题