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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。