Elixir:
Удаление символов, соответствующих шаблону
Как:
В Elixir используйте функцию String.replace/4
для удаления символов, соответствующих шаблону. Посмотрите эти примеры:
# Удалить цифры из строки
original_string = "Elixir2023Rocks!"
clean_string = String.replace(original_string, ~r/\d/, "")
IO.puts(clean_string) # Вывод: "ElixirRocks!"
# Удалить пунктуацию
punctuationless_string = String.replace(original_string, ~r/[[:punct:]]/, "")
IO.puts(punctuationless_string) # Вывод: "Elixir2023Rocks"
# Устранить пробелы
no_whitespace_string = String.replace(original_string, ~r/\s/, "")
IO.puts(no_whitespace_string) # Вывод: "Elixir2023Rocks!"
Глубже в тему
Использование сопоставления с описанием для удаления символов в строках не является уникальным для Elixir; это общая возможность почти во всех языках программирования, эволюционировавшая из способностей регулярных выражений (regex) в ранних инструментах Unix, таких как sed
и grep
. Альтернативами String.replace/4
могут быть использование сопоставления с образцом и рекурсии для ручного обхода и изменения строки, но этот метод обычно более многословен и сложен, что делает встроенные функции regex предпочтительными. Под капотом String.replace/4
использует наследие Elixir от Erlang, используя мощные возможности сопоставления с образцом и манипулирования строками виртуальной машины BEAM.
Смотрите также:
- Документация модуля
String
в Elixir: https://hexdocs.pm/elixir/String.html - Regex в Elixir: https://hexdocs.pm/elixir/Regex.html
- ‘Изучите регулярные выражения’: https://www.regular-expressions.info/tutorial.html
- Взгляд Elixir School на строки и сопоставление с образцом: https://elixirschool.com/en/lessons/basics/strings/