Сборка шаблона в Go
Шаблон сначала собирают, а потом ищут им в строке. Сначала текст образца проверяют и компилируют в готовый объект, и только потом вызывают поиск или замену.
Команда Compile из пакета шаблонов возвращает
готовый объект и второе значение с текстом сбоя,
если скобки или квантификаторы расставлены неверно:
package main
import (
"fmt"
"regexp"
)
func main() {
re, err := regexp.Compile(`[a-z`)
if err != nil {
fmt.Println(err)
}
}
Команда MustCompile рассчитана на образец,
который уже проверен: при ошибке в тексте шаблона
программа останавливается. В следующих уроках,
где шаблон верный, будем пользоваться ею:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`\d+`)
txt := "a12b"
fmt.Println(re.FindString(txt))
}
Дан следующий код:
re := regexp.MustCompile(`a+`)
Скажите, зачем образец записан в обратных кавычках.
Дан следующий код:
_, err := regexp.Compile(`(`)
fmt.Println(err != nil)
Скажите, будет ли ошибка при сборке.
Дан следующий код:
re := regexp.MustCompile(`x`)
fmt.Println(re.FindString(`xax`))
Скажите, что выведется на экран.