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

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

点赞
用户805875
用户805875

如果你删除所有特殊字符、空白符号,剩下的只有字母和数字,对吧?所以如果 str 是你的字符串,

str:gsub( "%W", "" )

将是干净的字符串。

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

2017-07-22 23:08:21
用户1866656
用户1866656

这对我有效

m=your_string:gsub('%W','')
2017-07-22 23:11:28
用户5287638
用户5287638

Lua 模式匹配 中,字符类 %p 表示所有标点符号,字符类 %c 表示所有控制字符,字符类 %s 表示所有空格字符。因此,你可以用集合 [%p%c%s] 表示所有标点符号、所有控制符和所有空格字符。

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

str = str:gsub('[%p%c%s]', '')

(注意,这与 Egor 在上面的代码片段 实质上是相同的。)

2017-07-23 09:19:27