Пошук та заміна тексту

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 надає гнучкість і продуктивність, необхідні для ефективної маніпуляції текстом.