diff --git a/src/utils.lua b/src/utils.lua index 0afe352..b37501d 100644 --- a/src/utils.lua +++ b/src/utils.lua @@ -128,11 +128,13 @@ end --- Escapes a string to use as a regex. -- @string string to escape. function utils.lua.escape_string_regex(string) - -- ^$()%.[]*+-? - return string:gsub('%%', '%%%%'):gsub('^%^', '%%^'):gsub('%$$', '%%$') - :gsub('%(', '%%('):gsub('%)', '%%)'):gsub('%.', '%%.') - :gsub('%[', '%%['):gsub('%]', '%%]'):gsub('%*', '%%*') - :gsub('%+', '%%+'):gsub('%-', '%%-'):gsub('%?', '%%?') + return string:gsub('[%^%$%(%)%%%.%[%]%*%+%-%?%z]', { + ['^'] = '%^'; ['$'] = '%$'; ['('] = '%('; + [')'] = '%)'; ['%'] = '%%'; ['.'] = '%.'; + ['['] = '%['; [']'] = '%]'; ['*'] = '%*'; + ['+'] = '%+'; ['-'] = '%-'; ['?'] = '%?'; + ['\0'] = '%z'; + }) end