Dart:
Пошук та заміна тексту
Як це зробити:
Dart надає надійні методи для пошуку та заміни тексту безпосередньо через його клас String
, без необхідності використання зовнішніх бібліотек. Ось як ви можете це зробити:
Базовий пошук та заміна
Для пошуку підрядка та його заміни іншим рядком, можна використовувати replaceAll
:
String sampleText = "Привіт, Dart! Dart чудовий.";
String modifiedText = sampleText.replaceAll("Dart", "Flutter");
print(modifiedText); // Результат: Привіт, Flutter! Flutter чудовий.
Використання регулярних виразів
Для складніших потреб у пошуку та заміні Dart використовує регулярні вирази за допомогою класу RegExp
. Це дозволяє здійснювати пошук і заміну за патерном у рядках:
String sampleText = "Dart 2023, Flutter 2023";
String modifiedText = sampleText.replaceAll(RegExp(r'\d+'), "2024");
print(modifiedText); // Результат: Dart 2024, Flutter 2024
Цей приклад знаходить усі випадки однієї чи більше цифр (\d+
) у рядку і замінює їх на “2024”.
Пошук без врахування регістру
Для пошуку без врахування регістру можна змінити конструктор RegExp
, ігноруючи регістр:
String sampleText = "Ласкаво просимо до Dart, мови програмування.";
String modifiedText = sampleText.replaceAll(RegExp(r'dart', caseSensitive: false), "Flutter");
print(modifiedText); // Результат: Ласкаво просимо до Flutter, мови програмування.
Заміна за допомогою функції
Для динамічної заміни на основі самого збігу Dart дозволяє передавати функцію в replaceAllMapped
. Ця функція може виконувати операції або розрахунки на знайдених послідовностях:
String sampleText = "Збільш 5 на 1 і отримай 6.";
String incrementedText = sampleText.replaceAllMapped(RegExp(r'\d+'), (Match m) => (int.parse(m[0]!) + 1).toString());
print(incrementedText); // Результат: Збільш 6 на 1 і отримай 7.
Ця заміна замінює кожну послідовність цифр на її інкрементоване значення. Кожен збіг перетворюється в ціле число, інкрементується, а потім повертається назад у рядок для заміни.
Можливості Dart з маніпуляції рядками, особливо для пошуку та заміни тексту, роблять його потужним інструментом для обробки та підготовки даних у вашому додатку. Незалежно від того, чи використовуєте ви прямі заміни рядків або скористайтеся потужністю регулярних виразів, Dart надає гнучкість і продуктивність, необхідні для ефективної маніпуляції текстом.