質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Lua

Luaは、汎用のスクリプト言語の一つで、 移植性が高く、高速な実行速度などの特徴を持ち 手続き型・オブジェクト指向言語としても利用可能で 関数型言語、データ駆動型の要素も併せ持っている言語です。

Q&A

解決済

1回答

4004閲覧

Lua 文字列置換で検索時にアスタリスク使ったワイルドカードを使用したい

az_kn

総合スコア1

Lua

Luaは、汎用のスクリプト言語の一つで、 移植性が高く、高速な実行速度などの特徴を持ち 手続き型・オブジェクト指向言語としても利用可能で 関数型言語、データ駆動型の要素も併せ持っている言語です。

0グッド

0クリップ

投稿2020/07/27 04:25

前提・実現したいこと

Stringsの置換を行いたいです。
名称があってそれに対して検索を行い合致すれば置換を行う制御を書きたいです。
その検索時にアスタリスク(ワイルドカード)の適用をどうすれば実現できるのかわかりません。

発生している問題

アスタリスクの制御の方法がわからない

``

該当のソースコード

Lua

1 str = "abcdefghi" 2 search = "ab*f" 3 replace = "123" 4 5 after = string.gsub(str,"("..search..")",replace) 6

試したこと

上記のソースコードではserachにアスタリスクを使わない"abcdef"と記載すれば
その文字列に対して置換して123ghiに変換されるんですが
アスタリスクをワイルドカードにする方法が思いつかないです。
ご教授願いたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

リファレンスマニュアルは見てますか?

string.gmatch (s, pattern)

呼ばれるたびに文字列 s に対して pattern (§6.4.1 を参照) から次のキャプチャを返すようなイテレータ関数を返します。 pattern にキャプチャが指定されていなければ、呼ばれるたびにマッチ全体が返されます。

で、書いてあるとおり、6.4.1を参照します。

文字クラスは文字の集合を表すために使われます。 文字クラスの記述では以下の組み合わせが使えます。
.: (ドット) すべての文字を表します。

単一の文字クラスに '*' が続いたもの。 そのクラス中の文字の0回以上の繰り返しにマッチします。 これらの繰り返し項目は必ず最も長いマッチ可能な並びにマッチします。

ということですので、「"ab"で始まり"f"で終わる文字列」は、

lua

1search = "ab.*f"

でマッチします。

投稿2020/07/27 11:50

katsuko

総合スコア3536

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

az_kn

2020/07/27 11:55 編集

ありがとうございます。 すぐに試しました。解決しました。 助かりました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問