私はこのフォーラムではかなり新しいです。これを達成するために正しい文字列を操作することに問題があります。ルア文字列操作(前と後の単語の検索)
基本的に、私がやろうとしているが、この例のように入力文字列を受け取ります:
str = "Say hello to=Stack overflow, Say goodbye to=other resources"
for question, answer in pairs(string.gmatch(s, "(%w+)=(%w+)"))
print(question, answer)
end
私はそれを返すようにしたい:質問=「によろしく」と=「スタックオーバーフロー、質問に答えます= "さよならを言いなさい"などというより、等号と直後の言葉の直前の言葉を拾います。私は数量詞を試したこともありますが、それと全く同じことをします。 私もこのパターンを試しました。
[%w%s]*=[%w%s]
私はちょうどいいこの文字列をキー=値テーブルにソートすると、各キーは各=の前のすべての単語であり、値はその等号の後でカンマの前のすべての単語です。 誰かが提案をしていますか?続く、 '' =
([^=]
)以外のものを除いて、次に何を1回以上(+
)は=
続い繰り返して:
2回目の試行では、複数の文字と一致するように末尾にプラス記号がありません。それ以外の例は実行されません(例:FORの後にDOがない、対になって一致する、strとs)。その場合は、ここで投稿した方法ではありませんでした。これはうまくいくはずです: 's = 'スタックオーバーフロー、他のリソースにさようなら言ってください' 質問に答えてください:gmatch '([%w%s] +)=([%w%s] +) 'do print(質問、回答) end' – tonypdmtr
私はエディタでそれを打ちました。私はコンソールにdoを持っていましたが、私は使っていました。 – syntaxs