2016-07-07 25 views
-2

Also, wenn ich die Variable name habe. Wie kann ich prüfen, ob es mit einem Muster übereinstimmt?Überprüfen Sie, ob die Variable Muster entspricht, LUA

Zum Beispiel würde ich gerne überprüfen, ob der Name der Variablen ein Muster wie 10 entspricht. Die Wörter am Anfang unterstreichen dann die Wörter. Ohne Nummern.

Ich habe wirklich keine Ahnung, wo ich überhaupt anfangen soll.

local pattern = something if name == pattern then

UPDATE ** Ich habe folgendes versucht, arbeiten noch nichts.

local pattern = "a%%sa%" 
if string.match (name, pattern) then 
    return 1 
else 
    return 0 
end 

auch versucht, auf diese Weise

local pattern = "a%_a%" 
if string.match (name, pattern) then 
    return 1 
else 
    return 0 
end 

Kann ich bitte etwas Hilfe

+0

es nur seltsame Wege sind t zu tun Hut in nativem Lua. Nichts eignet sich für Dinge außerhalb des Debuggens. Warum willst du das machen? Welches Problem löst es? vielleicht gibt es eine bessere Lösung – Piglet

+0

@Piglet Ich habe gerade gefunden '" "== str: gsub (pat," ")' Könnte ich so etwas tun? Können Sie mir ein Beispiel für die seltsamen Wege zeigen? – KevinM1990112qwq

+0

@Piglet Ich möchte nur, dass der Name wie First_Last formatiert wird. Wenn jemand es erstellt hat, wie nur zuerst, dann möchte ich ihm sagen, es zu ändern. – KevinM1990112qwq

Antwort

2

Ein Muster, das eine beliebige Kombination mit einem Unterstrich verbunden Kleinschreibung übereinstimmt bekommen wäre:

"%l+_%l+" 

%l spezifiziert jeden Kleinbuchstaben,

gefolgt von einer +, die die Nummer des Symbols angibt, folgt.

So bedeutet %l+ "mindestens einen Kleinbuchstaben"

_ ist einfach ein Unterstrich.

So das Muster "%l+_%l+" bedeutet „mindestens einen Kleinbuchstaben durch einen Unterstrich durch mindestens einen Kleinbuchstaben

Bitte beachten Sie bauen können Muster zu https://www.lua.org/pil/20.2.html und/oder https://www.lua.org/manual/5.3/manual.html#6.4.1 für alle möglichen Steine ​​gefolgt gefolgt

.

Sie können diese Muster in den Funktionen, die durch die String-Standardbibliothek zur Verfügung gestellt verwenden. string.find, string.gsub und so weiter.

Wenn Sie das Zeug exzessive Kasse LPeg zum Beispiel verwendet werden sollen.

0

in String-Muster in lua wird etwas zwischen Klammern Sie auch mit einem speziellen caracter wie a, für Briefe danach tun% zurückgeführt werden einen Buchstaben nach% addieren + passen a würden Sie die meisten möglichen Buchstaben erkennen lassen, in dem Muster, bevor Sie zum nächsten Zeichen/Satz von Zeichen zum Beispiel erhalten:

s = "Hello Julia my love ! Here's a hug!" 
lovername,gift = string.match(s,"(%a+) my love ! Here's a (%a+)") 
print(lovername.." was given a "..gift) 

in Ihrem Beispiel, können Sie dies tun:

var = "hello_world" 
if (string.match(var, "%a+_%a+")) then -- In this example, _ will be normal 
    print("Valid variable name !") 
else 
    print("Invalid variable name") 
end 
+0

Also wie kann ich sicherstellen, dass, wenn es nur Buchstaben und Unterstreichung entspricht, so jemand den Namen nicht eingeben kann ** # @ a_a ** 723 Doing es auf diese Weise, dann können alle Zeichen eingeben, solange Buchstaben auf beiden sind Seiten des Unterstrichs. Ich möchte, dass das Muster aus NUR Buchstaben und dem Unterstrich besteht. Wie ist das gemacht? – KevinM1990112qwq

+0

Sie können Zeichensätze verwenden, wobei ein Zeichensatz mit jedem Zeichen innerhalb dieses Satzes übereinstimmt, zum Beispiel: [% l0] + nur mit Kleinbuchstaben UND die Zahl 0 Das Hinzufügen von^am Anfang eines Satzes bedeutet, dass wird alles zurückgeben, was in der Menge enthalten ist: [^% l _] + gibt alles zurück, was nicht Kleinbuchstaben oder ein Unterstrich ist. Wir können dies verwenden, um zu wissen, dass der Name HAS anomal hat, wenn eine Zeichenkette mit etwas übereinstimmt [^% l _] + es bedeutet, dass es kein gültiger Name ist, Beispiel: 'if string.match (" @ hexalOnnn_a "," [ ^% l _] + ") dann print (" INVALID NAME ") sonst print (" GÜLTIGER NAME ") ende –

Verwandte Themen