英语不是我的母语,所以很难描述这个问题。
我想通过 lua string.gsub() 在 str 中得到 'd=40',但是有一些问题。
------下面的代码---
local str = [==[
-- a=10
- -b=20
--c=30
d=40
]==]local pat1 = [=[%s[%s]]=]
local pat2 = [=[\n[%s]]=]
str:gsub(pat1, function(s) print("pat1>>" .. s ) end) --pat1>>d=40
str:gsub(pat2, function(s) print("pat2<<" .. s) end) --不匹配本地 re1,_ = str:gsub("\n","$")
本地 re2,_ = str:gsub("%s","$")
print(re1) --a=10$- -b= 20$ --c=30$d=40$
print(re2) --$a=10$-$-b=20$$ --c=30$d=40$
正如 Lua 5.1 参考手册说
的 %s: 代表所有空格字符。
我认为它等于'\n',''和'\t'。
问题:为什么 pat2 不能匹配?
但我认为 pat2 是对的,有一个 '\n'befor'd=40' ,
所以我认为它可以匹配,但它不能工作,为什么?