Menu
CoddyTech

Поиск в строках

Часть раздела Логика и потоки выполнения путешествия по GDScript на Coddy. Урок 2 из 78.

Оператор in показывает, встречается ли текст в строке. Когда нужно узнать больше, чем просто да или нет, у строк есть методы поиска:

  • contains(text) возвращает true, если текст встречается где угодно, как и in
  • begins_with(text) и ends_with(text) проверяют только начало или конец
  • find(text) возвращает индекс первого вхождения текста или -1, если он не встречается
  • rfind(text) возвращает индекс последнего вхождения
  • count(text) возвращает количество вхождений текста
var email := "alice@coddy.tech"
print(email.begins_with("alice"))
print(email.ends_with(".tech"))
print(email.find("@"))
print(email.find("x"))
print(email.count("c"))
true
true
5
-1
3

find() принимает необязательный второй аргумент: индекс, с которого начинается поиск. Используй его, чтобы найти следующее вхождение после уже найденного:

var text := "one fish, two fish"
var first := text.find("fish")
print(first)
print(text.find("fish", first + 1))
4
14

Эти методы чувствительны к регистру: "Hello".contains("hello") — false. Сначала преобразуй строку с помощью to_lower() или используй версии, которые не учитывают регистр: findn(), containsn() и countn().

challenge icon

Задание

Легко

Программа считывает адрес электронной почты в email. Проверь, что он соответствует всем этим правилам:

  • Он содержит ровно один символ @
  • Он не начинается с @
  • Он не содержит пробелов
  • Он заканчивается на .com, .org или .tech, независимо от регистра букв

Выведи valid, если выполнены все правила, иначе — invalid. Для входных данных alice@CODDY.TECH результат будет таким:

valid

Попробуйте сами

extends Node

func _ready():
	var email := OS.read_string_from_stdin()
	# Выведите valid или invalid
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и потоки выполнения

Потренируйтесь самостоятельно: Онлайн-компилятор GDScript