processes modules loop for def utf-8 binary pattern-matching elixir

utf 8 - modules - Coincidencia de patrón en cualquier carácter UTF-8 individual



for loop in elixir (3)

Me gustaría tener una cláusula de función que coincida con cualquier carácter UTF-8.

Puedo unirme a personajes específicos como este

def foo("a") do "It''s an a" end

Pero no puedo determinar si es posible hacer lo mismo para cualquier personaje UTF8.

Mi solución actual es dividir la cadena en una lista de temas y una coincidencia de patrones en eso, pero tenía curiosidad si podía saltear ese paso.



De http://elixir-lang.org/docs/v1.0/elixir/Regex.html

The modifiers available when creating a Regex are: ... unicode (u) - enables unicode specific patterns like /p and changes modifiers like /w, /W, /s and friends to also match on unicode. It expects valid unicode strings to be given on match dotall (s) - causes dot to match newlines and also set newline to anycrlf; the new line setting can be overridden by setting (*CR) or (*LF) or (*CRLF) or (*ANY) according to re documentation

Así que puedes probar: ~ r /./ us

De http://elixir-lang.org/crash-course.html

In Elixir, the word string means a UTF-8 binary and there is a String module that works on such data

Así que creo que deberías ser bueno para ir.


Puedes hacer esto con:

def char?(<<c::utf8>>), do: true def char?(_), do: false

Tenga en cuenta que esto solo coincide con un binario con un solo carácter, para que coincida con el siguiente carácter de una cadena, puede hacer:

def char?(<<c::utf8, _rest::binary>>), do: true