У меня есть список со строками
>> list = ["h3llo","899","3@"]
Если элемент списка имеет хотя бы 1 букву или специальный символ, он считается: текст, в противном случае это: число
>> list = [:text, :number, :text]
Как я могу это сделать?
Один из способов - использовать Integer.parse/2:
Integer.parse/2
case Integer.parse(str) do {_, ""} -> :number _ -> :text end
Другим способом является простое регулярное выражение
iex> Regex.match?(~r/^\d+$/, "h3llo") false iex> Regex.match?(~r/^\d+$/, "899") true iex> Regex.match?(~r/^\d+$/, "3@") false