在Lua中(我只能找到其他语言的示例),如何从字符串中删除所有标点符号、特殊字符和空格?那么,例如,s t!r@i%p^(p,e"d
会变成stripped
?
在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 的代码片段本质上相同。)
如果删除所有特殊字符、空格、\xe2\x80\xa6,剩下的就是字母和数字,对吧?所以如果str
是你的字符串,
str:gsub( "%W", "" )\n
Run Code Online (Sandbox Code Playgroud)\n\n将是清理后的字符串。
\n\n%w
匹配所有单词字符,大写%W
以匹配所有非单词字符。如果这不完全是您想要匹配的,您可以构建自己的字符类- 例如,如果您想包含_
为可接受的字符,您可以使用[^%w_]
.