我想验证用户指定的版本字符串,以确保它由三个句点分隔的数字(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
,但不应该匹配
只能使用三个句点分隔的数字。
点在正则表达式中是特殊的,所以应该转义它们:
"^([0-9]+)\.([0-9]+)\.([0-9]+)$"
为什么使用双反斜杠?请参见此处:https://stackoverflow.com/a/4490920/4323