Elixir语言中 String.split
相关用法介绍如下。
用法一
split(binary)
@spec split(t()) :: [t()]
在每个 Unicode 空格出现时将字符串划分为子字符串,忽略前导和尾随空格。空白组被视为一次出现。除法不会发生在不间断的空白处。
例子
iex> String.split("foo bar")
["foo", "bar"]
iex> String.split("foo" <> <<194, 133>> <> "bar")
["foo", "bar"]
iex> String.split(" foo bar ")
["foo", "bar"]
iex> String.split("no\u00a0break")
["no\u00a0break"]
用法二
split(string, pattern, options \\ [])
@spec split(t(), pattern() | Regex.t(), keyword()) :: [t()]
根据模式将字符串划分为多个部分。
返回这些部分的列表。
pattern
可以是字符串、字符串列表、正则表达式或编译模式。
默认情况下,字符串被拆分为尽可能多的部分,但可以通过:parts
选项进行控制。
仅当 :trim
选项设置为 true
时,才会从结果中删除空字符串。
当使用的模式是正则表达式时,使用
拆分字符串。Regex.split/3
选项
-
:parts
(正整数或:infinity
) - 字符串最多拆分为此选项指定的多个部分。如果:infinity
,字符串将被分成所有可能的部分。默认为:infinity
。 -
:trim
(boolean) - 如果true
,则从结果列表中删除空字符串。
如果 pattern
是正则表达式,此函数还接受
接受的所有选项。Regex.split/3
例子
用字符串模式分割:
iex> String.split("a,b,c", ",")
["a", "b", "c"]
iex> String.split("a,b,c", ",", parts: 2)
["a", "b,c"]
iex> String.split(" a b c ", " ", trim: true)
["a", "b", "c"]
模式列表:
iex> String.split("1,2 3,4", [" ", ","])
["1", "2", "3", "4"]
一个正则表达式:
iex> String.split("a,b,c", ~r{,})
["a", "b", "c"]
iex> String.split("a,b,c", ~r{,}, parts: 2)
["a", "b,c"]
iex> String.split(" a b c ", ~r{\s}, trim: true)
["a", "b", "c"]
iex> String.split("abc", ~r{b}, include_captures: true)
["a", "b", "c"]
编译模式:
iex> pattern = :binary.compile_pattern([" ", ","])
iex> String.split("1,2 3,4", pattern)
["1", "2", "3", "4"]
拆分空字符串返回字素:
iex> String.split("abc", "")
["", "a", "b", "c", ""]
iex> String.split("abc", "", trim: true)
["a", "b", "c"]
iex> String.split("abc", "", parts: 1)
["abc"]
iex> String.split("abc", "", parts: 3)
["", "a", "bc"]
请注意,此函数可以在字形边界内或跨字形边界拆分。例如,采用由字符"e" 和尖音符组成的字形"é"。以下将字符串分成两部分:
iex> String.split(String.normalize("é", :nfd), "e")
["", "́"]
但是,如果 "é" 由单个字符“带尖音符的 e”表示,那么它将把字符串分成一个部分:
iex> String.split(String.normalize("é", :nfc), "e")
["é"]
相关用法
- Elixir String.split_at用法及代码示例
- Elixir String.splitter用法及代码示例
- Elixir String.slice用法及代码示例
- Elixir String.starts_with?用法及代码示例
- Elixir String.contains?用法及代码示例
- Elixir String.reverse用法及代码示例
- Elixir String.to_integer用法及代码示例
- Elixir String.pad_trailing用法及代码示例
- Elixir String.valid?用法及代码示例
- Elixir String.replace_prefix用法及代码示例
- Elixir String.printable?用法及代码示例
- Elixir String.replace_trailing用法及代码示例
- Elixir String.trim_leading用法及代码示例
- Elixir String.length用法及代码示例
- Elixir String.replace_suffix用法及代码示例
- Elixir String.first用法及代码示例
- Elixir String.upcase用法及代码示例
- Elixir String.graphemes用法及代码示例
- Elixir String.at用法及代码示例
- Elixir String.replace用法及代码示例
- Elixir String.next_grapheme用法及代码示例
- Elixir String.next_codepoint用法及代码示例
- Elixir String.myers_difference用法及代码示例
- Elixir String.trim_trailing用法及代码示例
- Elixir String.normalize用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 String.split(binary)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。