I am stuck with a problem in Lua to check whether the string value is not presented in another string.
That's how I likely will do it in Javascript:
'my string'.indexOf('no-cache') === -1 // true
but in Lua I'm trying to use string module which gives me unexpected response:
string.find('my string', 'no-cache') -- nil, that's fine but..
string.find('no-cache', 'no-cache') -- nil.. that's weird
string.find('no-cache', 'no') -- 1, 2 here it's right.. strange..
2 Answers 2
As has already been mentioned, - is a pattern metacharacter, specifically:
- a single character class followed by '-', which also matches 0 or more repetitions of characters in the class. Unlike '*', these repetition items will always match the shortest possible sequence;
You might be interested in the plain option for string.find. This will avoid the need for escaping anything else in the future.
string.find('no-cache', 'no-cache', 1, true)
 answered Nov 26, 2013 at 16:57
 
 
 
 Ryan Stein 
 
 8,0003 gold badges26 silver badges38 bronze badges
 
 
 Sign up to request clarification or add additional context in comments.
 
 
 
 Comments
- is a pattern metacharacter in lua. You need to escape it. string.find('no-cache', 'no%-cache')
 answered Nov 26, 2013 at 16:47
 
 
 
 Etan Reisner 
 
 81.6k8 gold badges119 silver badges154 bronze badges
 
 Comments
lang-lua