Elixir:
提取子字符串

How to:

Elixir提供了几种方式来提取子字符串。下面是几个例子:

str = "Hello, 世界!"

# 提取固定位置的字符
substring = String.slice(str, 7, 2)
IO.puts(substring) # => 世

# 用模式匹配来提取首次出现的子串
{matched, _rest} = String.split(str, ",")
IO.puts(matched)  # => Hello

# 用正则表达式提取特定模式的子串
regex = ~r/[\u4e00-\u9fff]+/
[match] = Regex.scan(regex, str)
IO.puts(Enum.join(match)) # => 世界

注意: 输出可能会因为不同的终端字符集支持而有差异。

Deep Dive

在Elixir出现之前,提取子字符串通常是手写函数或使用旧版Erlang函数。随着Elixir的发展,增加了对Unicode的支持和正则表达式库,使得提取非英文字符成为可能。现在的实现不仅考虑了效率,也增强了模式匹配的功能,提供更灵活的字符串处理方式。除了String.slice/3String.split/2,我们还有String.starts_with?/2等函数,提供更多选择。

See Also