Строка Lua.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;'>Article name</h1>
     <i id='desc'>Article description</i>

</div>
nil     nil

Я также пытался найти:

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

or

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

и это не сработало (возвращает nil)...


person IsawU    schedule 18.05.2015    source источник
comment
"<h1 style='text%-align: center;'>" работал   -  person IsawU    schedule 18.05.2015


Ответы (1)


Вам нужно избежать - в text-align в вашей функции string.find.

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

сделаю это.

Причина в том, что - является специальным символом. Вы можете узнать больше о специальных символах здесь:

Программирование на Lua: шаблоны

person Josh    schedule 18.05.2015
comment
также мог бы сделать fContent:find вместо string.find(fContent, - person ryanpattison; 18.05.2015