Поиск в строках
Часть раздела Логика и потоки выполнения путешествия по GDScript на Coddy. Урок 2 из 78.
Оператор in показывает, встречается ли текст в строке. Когда нужно узнать больше, чем просто да или нет, у строк есть методы поиска:
contains(text)возвращаетtrue, если текст встречается где угодно, как иinbegins_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
3find() принимает необязательный второй аргумент: индекс, с которого начинается поиск. Используй его, чтобы найти следующее вхождение после уже найденного:
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().
Задание
ЛегкоПрограмма считывает адрес электронной почты в email. Проверь, что он соответствует всем этим правилам:
- Он содержит ровно один символ
@ - Он не начинается с
@ - Он не содержит пробелов
- Он заканчивается на
.com,.orgили.tech, независимо от регистра букв
Выведи valid, если выполнены все правила, иначе — invalid. Для входных данных alice@CODDY.TECH результат будет таким:
validПопробуйте сами
extends Node
func _ready():
var email := OS.read_string_from_stdin()
# Выведите valid или invalid
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и потоки выполнения
1Строки: углублённое изучение
Методы строкПоиск в строкахЗамена и обрезка пробеловРазделение и объединениеПовторение — проверка имени пользователя4Словари. Часть 2
Вложенные словариМассивы словарейОбъединение словарейКопирование словарейПовторение — подсчёт частоты10Продвинутые функции
Возврат нескольких значенийЛямбда-функции. Часть 1Лямбда-функции. Часть 2Повторение — сортировка с помощью лямбда-функцииРекурсивные функции. Часть 1Рекурсивные функции. Часть 2Повторение — сумма вложенного массива13Система управления запасами
Обзор проектаДобавление товара2Продвинутое управление ветвлением
Сопоставление с переменнымиУсловия в шаблонахШаблоны массивовШаблоны словарейПроверка принадлежностиИтоги — парсер команд5Приложение «Телефонная книга»
Показать менюДобавить контакт8Менеджер успеваемости студентов
Обзор проектаДобавить студента3Многомерные массивы
Основы двумерных массивовДоступ к элементам двумерного массиваВложенные циклы с двумерными массивамиПовторение: двумерные массивыРваные массивыТипичные шаблоны работы с двумерными массивамиПовторение: игровое поле6Множества и словари
Что такое множество?Словарь как множествоДобавление и удалениеОбъединение и пересечениеРазность множествПовторение — удаление дубликатовПотренируйтесь самостоятельно: Онлайн-компилятор GDScript