使用 gsub 处理特殊字符

当我添加特殊字符时,似乎 gsub 不再起作用。

我应该如何使用包含这些字符的文本呢?

 print(string.gsub("a !foo walking", "%a+",{
   ["!foo"] = "bar",
   }))

期望输出

"a bar walking"
点赞
用户3832970
用户3832970

要匹配任何非空白字符,你可以使用 %S

print(string.gsub("a !foo walking", "%S+",{
   ["!foo"] = "bar",
}))

可以看 在线 Lua 演示

2020-10-23 11:40:40
用户3342050
用户3342050

版本 1:

#! /usr/bin/env lua

text = 'a !foo walking'
subbed = string .gsub( text, '!foo', 'bar' )

print(subbed)

版本 2:

与之前相同,只需使用 : 而非 .,所以您的文本将成为 gsub() 函数的第一个参数

#! /usr/bin/env lua

text = 'a !foo walking'
subbed = text:gsub('!foo', 'bar')

print(subbed)
2020-10-23 11:43:34