【发布时间】:2012-04-14 18:32:53
【问题描述】:
英语不是我的母语,所以很难描述这个问题。
我想通过 lua string.gsub() 在 str 中获取 'd=40',但是有一些问题。
-----下面的代码---
本地str = [==[
-- a=10
- -b=20
--c=30
d=40
]==]本地 pat1 = [=[%s[%s]]=]
本地 pat2 = [=[\n[%s]]=]
str:gsub(pat1, function(s) print("pat1>>" .. s) end) --pat1>>d=40
str:gsub(pat2, function(s) print("pat2本地 re1,_ = str:gsub("\n","$")
本地 re2,_ = str:gsub("%s","$")
打印(re1) --a=10$- -b=20$ --c=30$d=40$
打印(re2) --$a=10$-$-b=20$$ --c=30$d=40$
正如 Lua 5.1 参考手册所说
%s:代表所有空格字符。
我认为它等于 '\n',' 'and'\t'。
问题:为什么 pat2 不能匹配?
但我认为 pat2 是对的,有一个 '\n'befor'd=40' ,
所以我认为它可以匹配,但它不能工作,为什么?
【问题讨论】:
标签: lua pattern-matching lua-patterns