【问题标题】:Substituting whole words only using Regex in Lua仅在 Lua 中使用正则表达式替换整个单词
【发布时间】:2021-08-08 01:08:13
【问题描述】:

我正在制作一个能正确识别用户性别的程序。所以它应该将he 的每个实例替换为she,反之亦然。

问题是这也将替换 he 内部单词,例如 themtheirhelp... 这就是我卡住的地方。

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

【问题讨论】:

    标签: lua lua-patterns


    【解决方案1】:

    一种可能的双向解决方案:

    str = str:gsub("%a+", {he = "she", she = "he"})
    

    %a+ 匹配一个或多个基本上是单词的字母。该匹配被相应的表条目替换或保持不变。

    还有其他方法可以做到这一点,但这可能是实现双向解决方案的最短方法。

    编辑:

    关于第二个参数。我找不到任何关于此的文档。 你有吗?

    不确定您一直在哪里寻找文档,但 Lua Manual 说:

    string.gsub(s, pattern, repl [, n])

    ...

    如果 repl 是一个表,那么每次匹配都会查询该表,使用 第一次捕获作为键。

    【讨论】:

    • 关于第二个参数。我找不到任何关于此的文档。你有吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    相关资源
    最近更新 更多