("bar"):find("(foo)?bar")
返してはいけません1, 3
か?
print(("bar"):find("(foo)*bar"))
どちらも機能しprint(("bar"):find("(foo)-bar"))
ません。
("bar"):find("(foo)?bar")
返してはいけません1, 3
か?
print(("bar"):find("(foo)*bar"))
どちらも機能しprint(("bar"):find("(foo)-bar"))
ません。
これは、Lua のパターンの括弧が (非常に残念なことに) グループ化構造として機能せず、キャプチャ グループの区切り記号としてのみ機能するためです。patternを書くと、Luaはそれを(foo)?bar
「マッチ、、、、、、、グループでキャプチャ」と解釈します。ここにデモへのリンクがあります。残念ながら、あなたが望んでいた動作に最も近いのはであり、これはもちろん と にも一致し、他の間違ったキャプチャもあります。f
o
o
?
b
a
r
foo
f?o?o?bar
fbar
oobar
このコード
print(("bar"):find("f?o?o?bar"))
"(foo)bar"
stringまたは"(foobar"
from stringを検索している"bar"
場合、疑問符?
は最後の文字のみを指します。
単語全体を指すようにしたい場合は、[]
代わりに次を使用します。("bar"):find("[foo]?bar")