Elixir語言中 String.replace 相關用法介紹如下。
用法:
replace(subject, pattern, replacement, options \\ [])
@spec replace(t(), pattern() | Regex.t(), t() | (t() -> t() | iodata()), keyword()) ::
t()
返回通過用 replacement 替換 subject 中出現的 pattern 創建的新字符串。
subject 始終是一個字符串。
pattern 可以是字符串、字符串列表、正則表達式或編譯模式。
replacement 可以是字符串或函數,它接收匹配的模式並且必須將替換作為字符串或 iodata 返回。
默認情況下,它會替換所有出現的情況,但可以通過 :global 選項控製此行為;請參閱下麵的"Options" 部分。
選項
:global- (布爾值)如果true,所有出現的pattern都被替換為replacement,否則隻替換第一次出現的。默認為true
例子
iex> String.replace("a,b,c", ",", "-")
"a-b-c"
iex> String.replace("a,b,c", ",", "-", global: false)
"a-b,c"
模式也可以是字符串列表,替換也可以是接收匹配項的函數:
iex> String.replace("a,b,c", ["a", "c"], fn <<char>> -> <<char + 1>> end)
"b,b,d"
當模式是正則表達式時,可以在 replacement 字符串中給出 \N 或 \g{N} 以訪問正則表達式中的特定捕獲:
iex> String.replace("a,b,c", ~r/,(.)/, ",\\1\\g{1}")
"a,bb,cc"
請注意,我們必須轉義反斜杠轉義字符(即,我們使用 \\N 而不是僅使用 \N 來轉義反斜杠;對於 \\g{N} 也是如此)。通過給出 \0 ,可以在替換字符串中注入整個匹配項。
也可以給出編譯模式:
iex> pattern = :binary.compile_pattern(",")
iex> String.replace("a,b,c", pattern, "[]")
"a[]b[]c"
當一個空字符串作為 pattern 提供時,該函數會將其視為每個字素之間的隱式空字符串,並且該字符串將被穿插。如果將空字符串作為replacement 提供,則將返回subject:
iex> String.replace("ELIXIR", "", ".")
".E.L.I.X.I.R."
iex> String.replace("ELIXIR", "", "")
"ELIXIR"
相關用法
- Elixir String.replace_prefix用法及代碼示例
- Elixir String.replace_trailing用法及代碼示例
- Elixir String.replace_suffix用法及代碼示例
- Elixir String.replace_leading用法及代碼示例
- Elixir String.reverse用法及代碼示例
- Elixir String.contains?用法及代碼示例
- Elixir String.to_integer用法及代碼示例
- Elixir String.pad_trailing用法及代碼示例
- Elixir String.split_at用法及代碼示例
- Elixir String.valid?用法及代碼示例
- Elixir String.printable?用法及代碼示例
- Elixir String.trim_leading用法及代碼示例
- Elixir String.length用法及代碼示例
- Elixir String.first用法及代碼示例
- Elixir String.upcase用法及代碼示例
- Elixir String.graphemes用法及代碼示例
- Elixir String.at用法及代碼示例
- Elixir String.next_grapheme用法及代碼示例
- Elixir String.next_codepoint用法及代碼示例
- Elixir String.myers_difference用法及代碼示例
- Elixir String.trim_trailing用法及代碼示例
- Elixir String.normalize用法及代碼示例
- Elixir String.ends_with?用法及代碼示例
- Elixir String.downcase用法及代碼示例
- Elixir String.equivalent?用法及代碼示例
注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 String.replace(subject, pattern, replacement, options \\ [])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
