现在我一直在使用Regex.scan
方法:
Regex.scan(~r/do/i, “Do. Or do not. There is no try.") |> length
在Ruby中,我们可以使用.scan
方法:"Hello world".count "o" #=> 2
使用Elixir计算字符串中的子字符串是否有更短的方法?不需要花哨的正则表达式,我只需要计算字符串中的子串数。
答案 0 :(得分:4)
不短,但另类:
"Hello world" |> String.graphemes |> Enum.count(& &1 == "o")
感谢@mudasobwa的惯用方式。
答案 1 :(得分:4)
另一个解决方案是按给定的子字符串拆分字符串,然后返回列表长度减去一个
len = "foo bar foobar" |> String.split("foo") |> length()
total = len - 1