Excluindo caracteres que correspondem a um padrão

Elm:
Excluindo caracteres que correspondem a um padrão

Como fazer:

import String exposing (filter)
import Regex exposing (fromString, contains)

removePattern : String -> String -> String
removePattern pattern text =
    case fromString pattern of
        Nothing ->
            text

        Just regex ->
            filter (\char -> not (contains regex (String.fromChar char))) text

-- Usando a função:
removePattern "[0-9]" "Elm2023 é top!"          --> "Elm é top!"
removePattern "[^A-Za-z\\s]" "Olá, Mundo!123."  --> "Olá Mundo"

Aprofundando

Historicamente, manipulação de strings é crítica em programação e cada linguagem tem sua abordagem. Em Elm, Regex e a função filter da biblioteca String são usadas para essa tarefa. Alternativas incluem escrever a própria função de filtragem ou usar funções de alto nível da biblioteca String.Extra. A implementação em Elm favorece clareza e segurança de tipos ao invés da performance pura; cada caractere é verificado individualmente contra o padrão regex, efetivamente deixando de fora aqueles que correspondem.

Veja Também