Lua的string.find将找不到模式

Isa*_*awU 2 string lua file find lua-5.1

我目前正在为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)
Run Code Online (Sandbox Code Playgroud)

回报

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

     <h1 style='text-align: center;'>Article name</h1>
     <i id='desc'>Article description</i>

</div>
nil     nil
Run Code Online (Sandbox Code Playgroud)

我也试图找到:

[[<h1 style='text-align: center;'>]]
Run Code Online (Sandbox Code Playgroud)

要么

"h1 style='text-align: center;'"
Run Code Online (Sandbox Code Playgroud)

它没有用(返回nil)......

Jos*_*osh 5

您需要在string.find函数中转义-in text-align.

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

会做的.

之所以是因为-是一个特殊的角色.您可以在此处详细了解特殊字符:

Lua编程:模式

  • 也可以做`fContent:find`而不是`string.find(fContent,` (4认同)