11-03-2021, 19:55
(11-03-2021, 13:23)zypy написа: Благодаря, би ли пояснил
Код:('"hour">(.+?)<.+?"name">(.+?)<.+?"type">(.+?)<')
и по точно защо е това и как работи , точно тази част от кода < .+?"
Всъщност е само .+?, другото е от текста, който парсваме, а .+? означава да вземе всичко между две избрани неща. Т.е. заявката звучи така:
намери всичко, което е между "hour">(тук вземи стойност 1) и <, след това просто прескачаме с .+? останалия текст, докато стигнем до следващото присвояване на стойност, която е между "name">(тук вземи стойност 2) и <, после пак прескачаме с .+? докато стигнем до третата стойност, която е между "type">(тук вземи стойност 3) и <. И това е всичко. За да вземеш стойност, трябва да я ограничиш между нещо, за това имаме начало, стойност, край. В нашия случай, просто < е първия символ в текста, след стйоността, която искаме да вземем и за това слагам него. Когато .+? е в скоби, означава, че присвояваме стойността на съответното място, а когато не е в скоби, просто прескачаме целия текст до следващото нещо, което ни интересува.