1*bf2c3715SXin Lifunction(escape_string_as_regex _str_out _str_in) 2*bf2c3715SXin Li string(REGEX REPLACE "\\\\" "\\\\\\\\" FILETEST2 "${_str_in}") 3*bf2c3715SXin Li string(REGEX REPLACE "([.$+*?|-])" "\\\\\\1" FILETEST2 "${FILETEST2}") 4*bf2c3715SXin Li string(REGEX REPLACE "\\^" "\\\\^" FILETEST2 "${FILETEST2}") 5*bf2c3715SXin Li string(REGEX REPLACE "\\(" "\\\\(" FILETEST2 "${FILETEST2}") 6*bf2c3715SXin Li string(REGEX REPLACE "\\)" "\\\\)" FILETEST2 "${FILETEST2}") 7*bf2c3715SXin Li string(REGEX REPLACE "\\[" "\\\\[" FILETEST2 "${FILETEST2}") 8*bf2c3715SXin Li string(REGEX REPLACE "\\]" "\\\\]" FILETEST2 "${FILETEST2}") 9*bf2c3715SXin Li set(${_str_out} "${FILETEST2}" PARENT_SCOPE) 10*bf2c3715SXin Liendfunction() 11*bf2c3715SXin Li 12*bf2c3715SXin Lifunction(test_escape_string_as_regex) 13*bf2c3715SXin Li set(test1 "\\.^$-+*()[]?|") 14*bf2c3715SXin Li escape_string_as_regex(test2 "${test1}") 15*bf2c3715SXin Li set(testRef "\\\\\\.\\^\\$\\-\\+\\*\\(\\)\\[\\]\\?\\|") 16*bf2c3715SXin Li if(NOT test2 STREQUAL testRef) 17*bf2c3715SXin Li message("Error in the escape_string_for_regex function : \n ${test1} was escaped as ${test2}, should be ${testRef}") 18*bf2c3715SXin Li endif() 19*bf2c3715SXin Liendfunction()