审查长生不老药中字符串的第一个和最后一个字符之间的字符
Posted
技术标签:
【中文标题】审查长生不老药中字符串的第一个和最后一个字符之间的字符【英文标题】:Censor Characters between the first and last character of a string in elixir 【发布时间】:2021-07-09 09:28:18 【问题描述】:我想替换/审查 elixir 中用户名的字符。所以最后,它应该看起来像在 ebay 的投标人列表中:
在 elixir 中有字符串替换功能,但我是 regex 的新手,我不知道 elixir-regex 支持什么。那么我该如何实现呢?
iex> String.replace("username1234", someregex, "***")
"u***4"
【问题讨论】:
【参考方案1】:虽然您肯定可以使用正则表达式“替换除第一个和最后一个符号之外的所有符号”来完成此操作
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"
【讨论】:
谢谢。您认为性能最高的选项是什么? 我不考虑性能,我做基准。在这里没关系,因为影响不大,但如果您好奇,String.split/3
将是最有可能性能最好的一个。以上是关于审查长生不老药中字符串的第一个和最后一个字符之间的字符的主要内容,如果未能解决你的问题,请参考以下文章