我想验证用户指定的版本字符串 - 以确保它包含三个以句点分隔的数字(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()
Run Code Online (Sandbox Code Playgroud)
那么,如何正确编写所需的正则表达式?
谢谢.
UPD
我的正则表达式也匹配1.2.3.4,但不应该!
只有三个以周期分隔的数字是可能的.
圆点在正则表达式中是特殊的,所以你应该逃避它们:
"^([0-9]+)\\.([0-9]+)\\.([0-9]+)$"
Run Code Online (Sandbox Code Playgroud)
为什么双反斜杠?见这里:https://stackoverflow.com/a/4490920/4323
| 归档时间: |
|
| 查看次数: |
8042 次 |
| 最近记录: |