我正在制作一个能够正确处理用户性别的程序。因此,它应该将he
的每个实例替换为she
,反之亦然。
问题是,这也将取代them
、their
、help
等词中的he
。。。这就是我被卡住的地方。
local str = "the he he's hell"
str = str:gsub("he", "she") --tried my best, not the correct solution!
print(str) --expecting "the she she's hell"
基本上将所有he
替换为she
。
一个双向工作的可能解决方案:
str = str:gsub("%a+", {he = "she", she = "he"})
%a+
匹配一个或多个基本上是单词的字母。该匹配被相应的表条目替换或者保持不变。
还有其他方法可以做到这一点,但这可能是实现两天解决方案的最短方法。
编辑:
关于第二个参数。我找不到任何有关这方面的文件。你有吗?
不确定您在哪里寻找文档,但Lua手册上说:
string.gsub(s,pattern,repl[,n](
如果repl是一个表,则使用第一次捕捉作为关键。