Elixir-如何检查字符串是否包含文本或是否为数字(“ 453”)

时间:2019-09-26 23:50:52

标签: string numbers elixir

我有一个包含字符串的列表

>> list = ["h3llo","899","3@"]

如果列表元素至少包含1个字母或特殊字符,则将其视为:text,否则为:number

>> list = [:text, :number, :text]

我该怎么办?

3 个答案:

答案 0 :(得分:1)

一种方法是使用Integer.parse/2

case Integer.parse(str) do
  {_, ""} -> :number
  _ -> :text
end

答案 1 :(得分:0)

另一种方法是简单的正则表达式

iex> Regex.match?(~r/^\d+$/, "h3llo")
false
iex> Regex.match?(~r/^\d+$/, "899")
true
iex> Regex.match?(~r/^\d+$/, "3@")
false

答案 2 :(得分:-1)

您可以使用String.contains?效果很好,遵循一个摘录的文档示例:

Y