Кто-нибудь может помочь мне понять эту строку кода в lua

#lua #pattern-matching

#lua #сопоставление с образцом

Вопрос:

 local match1 = string.match(sk, "state = <string>%s*%d ")
  

В этой переменной ‘sk’ является строкой. Я не понял, что подразумевается под <string> данным шаблоном, который должен быть сопоставлен.

Комментарии:

1. Это следует понимать буквально. Ожидается, что строка sk будет содержать <string> .

Ответ №1:

"state = <string>%s*%d " является строкой, подобной любой другой строке.

%s*%d здесь есть особые значения, но <string> это просто буквальная строка.

Этот шаблон будет "state <string>" соответствовать 0 или более пробелам, за которыми следует одна или несколько цифр.

например

 local sk = "hello world, state = <string>    24 dogs eat a cat"
print(string.match(sk, "state = <string>%s*%d "))
  

будет печатать state = <string> 24