2016-05-24 16 views
2

入力:string.gsubリターン結果を置き換える

stringdata = '{"abcd://ipaddress/directory1/Images/subfolder/Image0.png","abcd://ipaddress/directory1/Images/subfolder/Image1.png","abcd://ipaddress/directory1/Images/subfolder/Image2.png","abcd://ipaddress/directory1/Images/subfolder/Image3.png","abcd://ipaddress/directory1/Images/subfolder/Image4.png"}' 

ソースコード

string.gsub(stringdata, "(.....................%w%w................................%w)",print) 

電流出力:出力(の各期待

abcd://ipaddress/directory1/Images/subfolder/Image0.png 
abcd://ipaddress/directory1/Images/subfolder/Image1.png 
abcd://ipaddress/directory1/Images/subfolder/Image2.png 
abcd://ipaddress/directory1/Images/subfolder/Image3.png 
abcd://ipaddress/directory1/Images/subfolder/Image4.png 

以下は別の変数に格納することができます)

directory1/Images/subfolder/Image0.png  
directory1/Images/subfolder/Image1.png 
directory1/Images/subfolder/Image2.png 
directory1/Images/subfolder/Image3.png  
directory1/Images/subfolder/Image4.png 
+0

いただきましたが?なぜダウン投票した? –

+0

質問してもあなたの問題が何であるかは不明です。あなたが解決しようとしている問題は何ですか?何がそのパターンを使用するように導いたのですか?希望する出力を記述することは、問題の説明と同じではありません。そして正直なところ、私はあなたの質問のタイトルが何かと関係しているかどうかも分かりません。 –

+0

よろしくお願いします。私はすべての質問を改訂して、もう一度投稿します。それで、すべてが恩恵を受けるようになる。 (私は覚えていたので、みんなが簡単に理解できるように簡単になっています) –

答えて

1

あなたのパターンには非常に多くの.がありますが、あなたの目的は何かを読んだり不明瞭にしたりします。

代わりに、形式に固有のパターンを使用します。このように

string.gsub(stringdata, "%w+://%w+/(%w+/%w+/%w+/%w+%.png)", print) 

を、それははるかに明確に各%w+が表すものです。


不適切な機能を使用しています。 string.gsubを置換するために使用され、代わりにstring.gmatchを使用します。質問と間違っ

for m in string.gmatch(stringdata, "%w+://%w+/(%w+/%w+/%w+/%w+%.png)") do 
    print(m) 
    -- do whatever with m 
end 
+0

ルアは理解しやすくないので、たくさんの点があります。あなたの解答は別の変数に格納されていません。しかし、提案していただきありがとうございます。あなたのコメントを読む前に、 'gsub'のパターン内の文字の使用を認識しました。 –

+0

申し訳ありませんが、「m」は何も印刷しません! string.gmatch(radarimgs、 "%w +://%w + /%w + /%w + /%w + /%w +%.png)"のmについては 'm = '')print(type(m))end ' ' –

+0

@CommonManコードを自分で確認してください:http://ideone.com/TMqXVm –

関連する問題