我想替换 Lua 中的任何单词、字符、数字或符号(; , .
除外),后跟字符串 "some-word\"
。更像是正则表达式中的“*”选项。 Lua中有没有类似'*'的东西?
示例:
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]*
有效,请注意:
-
是Lua模式中的一个魔术字符,需要对其进行转义。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###
关于string - Lua 模式用于替换任何单词、字符、数字或符号,后跟特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29271141/