如何从 Lua 字符串中删除所有特殊字符、标点符号和空格?

aJy*_*nks 5 lua

在Lua中(我只能找到其他语言的示例),如何从字符串中删除所有标点符号、特殊字符和空格?那么,例如,s t!r@i%p^(p,e"d会变成stripped

Jac*_*lor 7

Lua模式中,字符类%p代表所有标点符号,字符类%c代表所有控制字符,字符类%s代表所有空白字符。因此,您可以使用 set 表示所有标点字符、所有控制字符和所有空白字符[%p%c%s]

要从字符串中删除这些字符,可以使用string.gsub。对于 string str,代码如下:

str = str:gsub('[%p%c%s]', '')
Run Code Online (Sandbox Code Playgroud)

(请注意,这与上面 Egor 的代码片段本质上相同。)


nob*_*ody 6

如果删除所有特殊字符、空格、\xe2\x80\xa6,剩下的就是字母和数字,对吧?所以如果str是你的字符串,

\n\n
str:gsub( "%W", "" )\n
Run Code Online (Sandbox Code Playgroud)\n\n

将是清理后的字符串。

\n\n

%w匹配所有单词字符,大写%W以匹配所有非单词字符。如果这不完全是您想要匹配的,您可以构建自己的字符类- 例如,如果您想包含_为可接受的字符,您可以使用[^%w_].

\n