长生不老药中字符串的第一个和最后一个字符之间的审查字符

Censor Characters between the first and last character of a string in elixir

我想replace/censor elixir 中用户名的字符。所以最后,在 ebay 的投标人列表中应该是这样的:

在 elixir 中有字符串替换功能,但我是 regex 的新手,我不知道 elixir-regex 支持什么。那么我该如何实现呢?

iex> String.replace("username1234", someregex, "***")
"u***4"

虽然您肯定可以使用正则表达式“替换除第一个和最后一个符号之外的所有符号”来完成此操作

String.replace "username1234", ~r/(?<=\A.).*(?=.\z)/, "***"
#⇒ "u***4"

我最好选择 String.slice/3

first = String.slice("username1234", 0, 1)
last = String.slice("username1234", -1, 1)
"#{first}***#{last}"
#⇒ "u***4"

String.graphemes/1

[h | t] = String.graphemes("username1234")
h <> "***" <> List.last(t)
#⇒ "u***4"