Ich habe einfach Text wie folgt:Verwenden einzelnes Muster mehrere Wörter Lua Script String Match
Hello World [all 1]
Hi World [words 2]
World World [are 3]
Hello Hello [different 4]
ich alle Wörter in der eckigen Klammer als Variable in Array gesetzt werden sollen unter Verwendung von Lua. Ich versuche, diesen Code unten:
text = 'Hello World [all 1]\nHi World [words 2]\nWorld World [are 3]\nHello Hello [different 4]'
array = {string.match(text, '[%a%s]*%[([%a%s%d]*)%]')}
for i = 1,#array do
print(array[i])
end
Der Ausgang ist "alles 1". Mein Ziel ist es Ausgabe als
all 1
words 2
are 3
different 4
ich versucht habe, auszudrucken, wie unten hinzuzufügen 3 gleiche Muster:
array = {string.match(text, '[%a%s]*%[([%a%s%d]*)%].-[%a%s]*%[([%a%s%d]*)%].-[%a%s]*%[([%a%s%d]*)%].-[%a%s]*%[([%a%s%d]*)%]')}
Es funktioniert. Aber ich denke nicht, dass es der beste Weg ist, besonders wenn der Text eine Menge Zeilen wie 100 usw. enthält. Was ist der richtige Weg dafür?
danke im voraus.
Sind diese Zeilen in einer Datei oder ist es eine einzelne Zeichenfolge, die Sie durchsuchen möchten? –
danke für die schnelle Antwort. Es ist eine einzelne Zeichenfolge, die alle obigen Wörter enthält. – wakhaiha
'array = {} für s in s: gmatch '% b []' tun Array [# Array + 1] = s: Sub (2, -2) Ende – tonypdmtr