#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