Elixir:
Поиск и замена текста
Как это сделать:
В Elixir вы можете использовать модуль String
для быстрых операций поиска и замены. Вот как это делается:
original_text = "I heart Elixir!"
# Простая замена
replaced_text = String.replace(original_text, "heart", "❤️")
IO.puts replaced_text # Вывод: I ❤️ Elixir!
# Глобальная замена с шаблоном
replaced_text_global = String.replace(original_text, ~r/eart|Eli/, "❤️", global: true)
IO.puts replaced_text_global # Вывод: I ❤️ ❤️xir!
# Нечувствительная к регистру замена
insensitive_replace = String.replace(original_text, "ELIXIR", "❤️", global: true, case_insensitive: true)
IO.puts insensitive_replace # Вывод: I heart ❤️!
Глубокое погружение
Поиск и замена текста существуют с зарождения вычислительной техники; подумайте о функции ‘найти и заменить’ в документе Word, но применительно к коду. В Elixir это всё о сопоставлении шаблонов и эффективной работе со строками.
Функция String.replace/4
использует возможности сопоставления шаблонов Elixir, позволяя вам сопоставлять не только статические строки, но также и регулярные выражения, предоставляя значительную гибкость. За кулисами Elixir использует мощную обработку строк Erlang, которая является надежной и эффективной для задач обработки текста.
Альтернативы встроенному модулю String
включают написание собственных функций для более сложных случаев или использование сторонних библиотек, которые по-другому оборачивают обработку строк. Однако для большинства случаев использования встроенные функции справятся с задачей без добавления дополнительных зависимостей.
Как язык с неизменяемостью, помните, что каждая функция замены возвращает новую строку - оригинал остается неизменным. Это отличается от некоторых других языков, где вы можете изменить строку на месте.
Смотрите также
- Документация модуля
String
в Elixir: https://hexdocs.pm/elixir/String.html - Регулярные выражения в Elixir: https://hexdocs.pm/elixir/Regex.html
- Узнайте больше о сопоставлении шаблонов в Elixir: https://elixir-lang.org/getting-started/pattern-matching.html