【发布时间】:2018-06-13 00:21:35
【问题描述】:
【问题讨论】:
-
不管环境如何,通常你把整个字符串大写看看是否匹配。
标签: regex string elixir uppercase
【问题讨论】:
标签: regex string elixir uppercase
您可以将字符串转换为大写并检查它是否等于原始字符串:
iex(1)> upcase? = fn x -> x == String.upcase(x) end
#Function<6.99386804/1 in :erl_eval.expr/5>
iex(2)> upcase?.("foo")
false
iex(3)> upcase?.("FOO")
true
iex(4)> upcase?.("π")
false
iex(5)> upcase?.("Π")
true
【讨论】:
upcase? = & &1 == String.upcase(&1)
defp upcase?(input), do: input == String.upcase(input) 的身份完成了这项工作,我想知道 lambda 有什么好处。
您可以使用正则表达式:
iex> str = "Hello World"
iex> str =~ ~r(^[^a-z]*$)
false
iex> str = "HELLO WORLD"
iex> str =~ ~r(^[^a-z]*$)
true
【讨论】:
"π" =~ ~r(^[^a-z]*$) #=> true 但π 是Π 的小写。