如何创建仅匹配特定字符集的模式?

Gam*_*ora 3 lua pattern-matching special-characters

我正在寻找一种在字符串中搜索一组非常特定的字符的方法: "(),:;<>@[\]

specialChar = str:find("[\"][%(][%)][,][:][;][<][>][@][%[][%]][\\]")
Run Code Online (Sandbox Code Playgroud)

我认为由于Lua 模式局限性,没有任何模式可以满足我的需求。

我已经非常彻底地阅读了Lua 手册模式匹配部分,但似乎仍然无法弄清楚。

有谁知道我可以识别给定字符串是否包含这些字符中的任何一个的方法?

请注意,如果有帮助,我不需要知道它在字符串中的哪个字符或位置。

Wik*_*żew 5

要检查字符串是否包含", (, ), ,, :, ;, <, >, @, [, ,\或者]您可以使用

function ContainsSpecialChar(input)
    return string.find(input, "[\"(),:;<>@[\\%]]")
end
Run Code Online (Sandbox Code Playgroud)

Lua 演示

  • @Bee您应该区分字符类和模式的其余部分。在字符类之外,这些字符是特殊的。在字符类中,只有一些是特殊的,并且 `]` 仅在字符类中是特殊的。 (4认同)