我正在尝试在Lua中找到字符串的完全匹配,包括特殊字符。我希望下面的示例返回它是完全匹配,但由于-
字符,它返回nil
index = string.find("test-string", "test-string")
返回nil
index = string.find("test-string", "test-")
返回1
index = string.find("test-string", "test")
也返回1
如何让它完全匹配?
答案 0 :(得分:4)
Parameters: {"utf8"=>"✓",
"authenticity_token"=>"...",
"user"=>{"email"=>"...@..."},
"captcha"=>"LQQNOK",
"captcha_key"=>"94f701cc098d8f70a84e081a03a19994bb3c4b62",
"commit"=>"..."}
是Lua字符串模式中的模式运算符,因此当您说-
时,您告诉test-string
匹配字符串find()
的数量很少时间尽可能多。那么会发生什么呢?它会看test
,看到test-string
,并且由于test
在这种情况下不是真正的减号,所以它真的在寻找-
。
像迈克所说的那样,用teststring
字符来逃避它。
我发现this有助于更好地理解模式。
答案 1 :(得分:2)
您需要使用 6 Annual Social Night
7 Annual Social Night
8 Annual Social Night
9 Annual Social Night
字符转义模式中的特殊字符。
所以在这种情况下你正在寻找
%
答案 2 :(得分:2)
你也可以要求一个忽略魔术字符的普通子串匹配:
string.find("test-string", "test-string",1,true)