Files
CMake/Tests/RunCMake/string/RegexMultiMatchClear.cmake
Nikita Nemkin 5d039f3be3 regex: Match ^ at most once in repeated searches
When doing successive matches, track the input start and current search
start positions separately to prevent the `^` anchor from matching in
the middle of the string.  Add policy CMP0186 to provide compatibility.

Issue: #26629
Fixes: #16899
2025-02-13 20:00:02 +05:00

20 lines
625 B
CMake

cmake_policy(SET CMP0186 NEW)
function (output_results msg)
message("results from: ${msg}")
message("CMAKE_MATCH_0: -->${CMAKE_MATCH_0}<--")
message("CMAKE_MATCH_1: -->${CMAKE_MATCH_1}<--")
message("CMAKE_MATCH_2: -->${CMAKE_MATCH_2}<--")
message("CMAKE_MATCH_COUNT: -->${CMAKE_MATCH_COUNT}<--")
endfunction ()
set(haystack "Some::Scope")
string(REGEX MATCHALL "^([^:]+)(::)?" matches "${haystack}")
message("matches: ${matches}")
output_results("string(REGEX MATCHALL)")
string(REGEX REPLACE "^([^:]+)(::)?" "[\\1]" replace "${haystack}")
message("replace: ${replace}")
output_results("string(REGEX REPLACE)")