我想验证用户指定的版本字符串 - 确保它由三个句点分隔的数字组成(e.g. 1.20.300
).
但我不知道如何编写这样的正则表达式,下面的代码只是一个尝试:
if( PROJECT_VERSION MATCHES "([0-9]+).([0-9]+).([0-9+])" )
message( "NOTE: Valid version string" )
else()
message( FATAL_ERROR "Invalid version string" )
endif()
那么,如何正确编写所需的正则表达式呢?
Thanks.
UPD
我的正则表达式也匹配1.2.3.4
,但是不应该!
只能使用三个句点分隔的数字。
点在正则表达式中很特殊,所以你应该转义它们:
"^([0-9]+)\\.([0-9]+)\\.([0-9]+)$"
为什么要使用双反斜杠?看这里:https://stackoverflow.com/a/4490920/4323 https://stackoverflow.com/a/4490920/4323
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)