Lua模式,用于替换后面跟着一个特殊字符串的任何单词、字符、数字或符号



我想替换Lua中后面跟有字符串"some-word"的任何单词、字符、数字或符号(; , .除外)。更像regex中的"*"选项。卢阿语中有类似"*"的词吗?

示例:

some-word\test->some-word\###

some-word\b*ax#@$6;->some-word\###;

some-word\?foo,>->some-word\###,

我使用的代码:

d = "some-word" 
p = (tostring(d).."\[.%c%w%p^%;^%,^%.]+") 
c = "###" 
s = "testing some-word\test-2 later some-word\&^*; some-word\set_34$ " 
print(p) 
res = (string.gsub(s,p,c)) print(res)

(some%-word)[^;,.%s]*工作,注意:

  • -是鲁阿图案中的一个魔法角色,需要逃脱
  • some%-word()包围,因此它被%1捕获
  • 在字符类中,开头使用^表示以下内容的补充

测试:

d = "some%-word" 
p = "(" .. d .. ")" .. "\[^;,.%s]*"
c = "%1###" 
s = "testing some-word\test-2 later some-word\&^*; some-word\set_34$ " 
print(p) 
res = string.gsub(s,p,c)
print(res)

输出:

(some%-word)[^;,.%s]*
testing some-word### later some-word###; some-word###

最新更新