2013-11-26 13 views
7

Ich bin mit einem Problem in Lua stecken, um zu überprüfen, ob der String-Wert nicht in einer anderen Zeichenfolge dargestellt wird. Lua - get indexOf string

Das ist, wie ich es wahrscheinlich in Javascript tun:

'my string'.indexOf('no-cache') === -1 // true 

aber in Lua Ich versuche string Modul zu verwenden, die mir unerwartete Antwort gibt:

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.. 

Antwort

12

Wie bereits erwähnt, - ist ein Muster metacharacter, specifically:

  • eine Zeichenklasse, gefolgt von ‚-‘, die auch 0 oder mehr Wiederholungen von Zeichen in der Klasse übereinstimmt. Im Gegensatz zu '*' werden diese Wiederholungselemente immer der kürzest möglichen Reihenfolge entsprechen;

Sie könnten nach string.find in der plain Option interessiert. Dies wird die Notwendigkeit vermeiden, in Zukunft irgendetwas anderes zu vermeiden.

string.find('no-cache', 'no-cache', 1, true) 
5

- ist ein Muster Metazeichen in Lua. Du musst ihm entkommen. string.find('no-cache', 'no%-cache')