Dart:
Wyszukiwanie i zastępowanie tekstu
Jak to zrobić:
Dart dostarcza wytrzymałe metody do wyszukiwania i zamiany tekstu bezpośrednio przez klasę String
, bez potrzeby korzystania z zewnętrznych bibliotek. Oto jak możesz to zrobić:
Podstawowe wyszukiwanie i zamiana
Aby wyszukać podciąg i zastąpić go innym ciągiem, możesz użyć replaceAll
:
String sampleText = "Cześć, Dart! Dart jest świetny.";
String modifiedText = sampleText.replaceAll("Dart", "Flutter");
print(modifiedText); // Output: Cześć, Flutter! Flutter jest świetny.
Korzystanie z wyrażeń regularnych
Do bardziej złożonych potrzeb wyszukiwania i zamiany, Dart wykorzystuje wyrażenia regularne poprzez klasę RegExp
. Pozwala to na dopasowywanie wzorców i zamianę w ciągach znaków:
String sampleText = "Dart 2023, Flutter 2023";
String modifiedText = sampleText.replaceAll(RegExp(r'\d+'), "2024");
print(modifiedText); // Output: Dart 2024, Flutter 2024
Ten przykład znajduje wszystkie wystąpienia jednej lub więcej cyfr (\d+
) w ciągu i zamienia je na “2024”.
Wyszukiwanie niezależne od wielkości liter
Aby wykonać wyszukiwanie niezależne od wielkości liter, możesz zmodyfikować konstruktor RegExp
, aby ignorować wielkość liter:
String sampleText = "Witaj w Dart, języku programowania.";
String modifiedText = sampleText.replaceAll(RegExp(r'dart', caseSensitive: false), "Flutter");
print(modifiedText); // Output: Witaj w Flutter, języku programowania.
Zastępowanie za pomocą funkcji
Dla dynamicznych zamienników opartych na samym dopasowaniu, Dart pozwala na przekazanie funkcji do replaceAllMapped
. Ta funkcja może wykonywać operacje lub obliczenia na dopasowanych sekwencjach:
String sampleText = "Zwiększ 5 o 1, aby otrzymać 6.";
String incrementedText = sampleText.replaceAllMapped(RegExp(r'\d+'), (Match m) => (int.parse(m[0]!) + 1).toString());
print(incrementedText); // Output: Zwiększ 6 o 1, aby otrzymać 7.
To zastępuje każdą sekwencję cyfr ich wartością zwiększoną. Każde dopasowanie jest analizowane jako liczba całkowita, zwiększane, a następnie zamieniane z powrotem na ciąg znaków dla zamiany.
Możliwości manipulacji ciągami znaków w Dart, szczególnie dla wyszukiwania i zamiany tekstu, czynią go potężnym narzędziem do przetwarzania i przygotowywania danych w ramach aplikacji. Czy to za pomocą prostych zamienników ciągów znaków czy wykorzystania mocy wyrażeń regularnych, Dart zapewnia elastyczność i wydajność potrzebną do skutecznej manipulacji tekstem.