Lua的string.find无法找到模式。

我目前正在用 Lua 5.1 为我的网页编写程序,但遇到了一些奇怪的问题。

file=io.open("articles/" .. string.sub(string,1) .. "_1250.html")
fContent=file:read("*a")

nic,start=string.find(fContent,"<h1 style='text-align: center;'>")
print(fContent)
print(nic,start)
len=string.find(fContent,"</h1>",start)
name=string.sub(fContent,start+1,len-1)

返回:

(...blah blah blah boring file(fContent)....)

     <h1 style='text-align: center;'>文章名称</h1>
     <i id='desc'>文章描述</i>

</div>
nil     nil

我还试图查找:

[[<h1 style='text-align: center;'>]]

或者

"h1 style='text-align: center;'"

但都没有成功(返回 nil)...

点赞
用户308010
用户308010

你需要在 string.find 函数中转义 text-align 中的 -

nic, start = string.find(fContent, "<h1 style='text%-align: center;'>")

就可以了。

原因是 - 是一个特殊字符。你可以在这里了解更多关于特殊字符的信息:

Programming in Lua: Patterns

2015-05-18 19:11:37